コード例 #1
0
ファイル: CDijkstra.cs プロジェクト: jluisacosta/Graph-Editor
        public void muestraResultado(int[] pesos_totales, List <CNodoVertice> caminos, CNodoVertice origen)
        {
            string    camaux = "";
            DataTable dt     = new DataTable();

            object[]   values    = new object[3];
            int        ind       = 0;
            List <int> camino    = new List <int>();
            bool       sincamino = false;

            dt.Columns.Add("Destino");
            dt.Columns.Add("Camino");
            dt.Columns.Add("Peso Total");

            for (int i = 0; i < pesos_totales.Length; i++)
            {
                ind       = i;
                values[0] = V[i].getVertice().getId().ToString();

                if (pesos_totales[i] != INFINITO && pesos_totales[i] >= 0)
                {
                    values[2] = " " + pesos_totales[i].ToString();
                }
                else
                {
                    sincamino = true;
                    values[2] = " - ";
                }

                while (origen.getVertice().getId() != caminos[ind].getVertice().getId())
                {
                    camino.Add(caminos[ind].getVertice().getId());
                    ind = V.IndexOf(caminos[ind]);
                }

                camaux += origen.getVertice().getId().ToString() + ", ";
                for (int y = camino.Count - 1; y >= 0; y--)
                {
                    camaux += camino[y].ToString() + ", ";
                }

                camaux += V[i].getVertice().getId().ToString();

                if (sincamino)
                {
                    values[1] = " No existe";
                    sincamino = false;
                }
                else
                {
                    values[1] = camaux;
                }

                dt.Rows.Add(values);
                camaux = "";
                camino.Clear();
            }

            DDijkstra dij = new DDijkstra(dt, origen.getVertice().getId());

            dij.ShowDialog();
        }
コード例 #2
0
ファイル: CDijkstra.cs プロジェクト: jluisacosta/Graph-Editor
        public void muestraResultado(int[] pesos_totales, List<CNodoVertice> caminos,CNodoVertice origen)
        {
            string camaux = "";
            DataTable dt = new DataTable();
            object[] values = new object[3];
            int ind = 0;
            List<int> camino = new List<int>();
            bool sincamino = false;

            dt.Columns.Add("Destino");
            dt.Columns.Add("Camino");
            dt.Columns.Add("Peso Total");

            for (int i = 0; i < pesos_totales.Length; i++)
            {
                ind = i;
                values[0] = V[i].getVertice().getId().ToString();

                if (pesos_totales[i] != INFINITO && pesos_totales[i] >= 0)
                    values[2] = " " + pesos_totales[i].ToString();
                else
                {
                    sincamino = true;
                    values[2] = " - ";
                }

                while (origen.getVertice().getId() != caminos[ind].getVertice().getId())
                {
                    camino.Add(caminos[ind].getVertice().getId());
                    ind = V.IndexOf(caminos[ind]);
                }

                camaux += origen.getVertice().getId().ToString()+", ";
                for(int y = camino.Count-1;y>=0;y--)
                    camaux += camino[y].ToString() + ", ";

                camaux += V[i].getVertice().getId().ToString();

                if (sincamino)
                {
                    values[1] = " No existe";
                    sincamino = false;
                }
                else
                    values[1] = camaux;

                dt.Rows.Add(values);
                camaux = "";
                camino.Clear();
            }

            DDijkstra dij = new DDijkstra(dt, origen.getVertice().getId());
            dij.ShowDialog();
        }