Exemplo n.º 1
0
        public void AddEdgeClick(bool flag, int x, int y, int val)     //добавить ребро по клику
        {
            GNode selected2 = GetGnodeByXY(x, y);

            if (selected2 == null)
            {
                return;
            }
            if (selected == null)
            {
                selected = selected2;
            }
            else
            {
                GEdge e = new GEdge(selected, selected2);
                e.weight = val;
                selected.Edge.Add(e);
                if (!flag)                                    // undirected - два пути туда обратно
                {
                    GEdge f = new GEdge(selected2, selected); // двусторонняя дорога
                    f.weight = val;
                    //selected.Edge.Add(f);
                    selected2.Edge.Add(f);
                }
                selected = null;
            }
        }
Exemplo n.º 2
0
        public void AddEdgeClick(bool flag, int x, int y, int val)
        {
            GNode selected2 = GetGnodeByXY(x, y);

            if (selected2 == null)
            {
                return;
            }
            if (selected == null)
            {
                selected = selected2;
            }
            else
            {
                GEdge e = new GEdge(selected, selected2);
                e.weight = val;
                selected.Edge.Add(e);
                if (!flag)
                {
                    GEdge f = new GEdge(selected2, selected);
                    f.weight = val;
                    selected2.Edge.Add(f);
                }
                selected = null;
            }
        }
Exemplo n.º 3
0
        public void AddEdge(int f, int s, int val)
        {
            GEdge e = new GEdge(Nodes[f], Nodes[s]);

            e.weight = val;
            Nodes[f].Edge.Add(e);
        }
Exemplo n.º 4
0
        public void AddEdge(int f, int s, int val)  //добавить ребро через индексы узлов
        {
            GEdge e = new GEdge(Nodes[f], Nodes[s]);

            e.weight = val;
            Nodes[f].Edge.Add(e);
            //Nodes[s].Edge.Add(e);//ошибка при выводе,достаточно хранить в одной
        }