예제 #1
0
        public void eliminaNodo(Grafo grafo, NodoP p)
        {
            NodoP         nodoP;
            List <Arista> l = new List <Arista>();

            nodoP = p;
            if (nodoP != null)
            {
                //nodoP.aristas.Clear();
                foreach (NodoP n in grafo)
                {
                    foreach (Arista nr in n.aristas)
                    {
                        if (nr.destino.nombre == nodoP.nombre)
                        {
                            n.aristas.Remove(nr);

                            break;
                        }
                    }
                    foreach (Arista nr in n.aristas)
                    {
                        if (nr.origen.nombre == nodoP.nombre)
                        {
                            n.aristas.Remove(nr);

                            break;
                        }
                    }
                }
                grafo.Remove(nodoP);
                grafo.RemoveAt(nodoP.nombre - 1);
            }
        }