示例#1
0
        public void definePath(Node n)
        {
            if (n.getName() != n.getPredecessor().getName())
            {

                    if (n.getPredecessor().getPredecessor().getName() != n.getPredecessor().getName())
                    {
                        listNodePath.Add(n.getPredecessor());
                    }
                    definePath(n.getPredecessor());

            }
        }
示例#2
0
        public void execute(Graph graph, Node node)
        {
            //On marque le noeud
                node.markNode();

                //On copie les caractéristiques du noeud dans un nouveau noeud
                 Node n = new Node(node.getIndex(), node.getName());

                //On ajoute ce dernier au graphe
                 depthFirstTree.addNode(n);

                //Pour chaque arc partant du noeud :
                foreach (Arc a in node.getEgressArc())
                {
                    if (a.getEdge().getNodeState() == false)
                    {
                        Node e = new Node(a.getEdge().getIndex(), a.getEdge().getName());
                        depthFirstTree.addArc(new Arc(a.getCost(), n, e));
                        execute(graph, a.getEdge());
                    }
                }
        }
示例#3
0
        public void deleteNode(Node node)
        {
            Console.WriteLine("Suppresion du noeud: " + node.getName());

            //Suppression des arcs liés au sommet supprimé
            List<Arc> arcToDelete = new List<Arc>(); //Liste des arcs qui seront supprimés.

            foreach(Arc val in node.getIngressArc())
                arcToDelete.Add(val);
            foreach (Arc val in node.getEgressArc())
                arcToDelete.Add(val);
            foreach (Arc val in arcToDelete)
                deleteArc(val);

            _nodes.Remove(node);
            //updateMatrix();
            costMatrix.removeNode(node.getIndex());
            refreshIndex();
        }