コード例 #1
0
        public string obtenerListaSucesores(Vertice vertice)
        {
            string listaSucesores = "";
            Arista arcoAux        = vertice.arcoSucesor;

            while (arcoAux != null)
            {
                listaSucesores = listaSucesores + arcoAux.peso + " > ";
                arcoAux        = arcoAux.arcoSucesor;
            }

            return(listaSucesores);
        }
コード例 #2
0
        public string obtenerAntecesores(Vertice vertice)
        {
            string listaAntecesores = "";
            Arista arcoAux          = vertice.arcoPredecesor;

            while (arcoAux != null)
            {
                listaAntecesores = listaAntecesores + " < " + arcoAux.peso;
                arcoAux          = arcoAux.arcoPredecesor;
            }

            return(listaAntecesores);
        }
コード例 #3
0
        public void insertarArcoPredecesor(Vertice vertice, Arista nuevoArcoPredecesor)
        {
            Arista aux = null;

            if (vertice.arcoPredecesor != null)
            {
                aux = vertice.arcoPredecesor;

                while (aux.arcoPredecesor != null)
                {
                    aux = aux.arcoPredecesor;
                }

                aux.arcoPredecesor = nuevoArcoPredecesor;
            }
            else
            {
                vertice.arcoPredecesor = nuevoArcoPredecesor;
            }
        }
コード例 #4
0
        public void insertarArco(Vertice puntoA, Vertice puntoB, int peso)
        {
            Vertice verticeSucesor    = null;
            Vertice verticePredecesor = null;
            Arista  arista            = new Arista(puntoA, puntoB, peso);
            bool    encontrado        = false;

            verticePredecesor = Cabecera;
            verticeSucesor    = Cabecera;

            while (verticePredecesor.siguienteVertice != null && !encontrado)
            {
                if (verticePredecesor.Dato == puntoA.Dato)
                {
                    encontrado = true;
                }
                else
                {
                    verticePredecesor = verticePredecesor.siguienteVertice;
                }
            }

            encontrado = false;

            while (verticeSucesor.siguienteVertice != null && !encontrado)
            {
                if (verticeSucesor.Dato == puntoB.Dato)
                {
                    encontrado = true;
                }
                else
                {
                    verticeSucesor = verticeSucesor.siguienteVertice;
                }
            }

            insertarArcos(verticePredecesor, verticeSucesor, arista);
        }
コード例 #5
0
 public void insertarArcos(Vertice predecesor, Vertice sucesor, Arista nuevaArista)
 {
     insertarArcoSucesor(predecesor, nuevaArista);
     insertarArcoPredecesor(sucesor, nuevaArista);
 }