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()); } }
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()); } } }
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(); }