, , , .
, , , , node, node . ( , Dijkstra algorithm)
, .
A node :
public class Node {
public String value;
public List<Node> children = new ArrayList<Node>();
public Node parent;
public Node(Node parent){
this.parent = parent;
}
public Node(Node parent, String value){
this.parent = value;
this.value = value;
}
public boolean equals(Object n){
return value.equals(((Node)n).value);
}
}
, A B ( ), distanceTo, node, . , .
, :
- , . .
node parent node () ( ). A node , . A node - . node , parent null ( , node, ). parent!=null.
Node. 3 ( Node - java ):
Node nodeRoot = new Node(null, "root");
Node nodeA = new Node(nodeRoot, "A");
Node nodeB = new Node(nodeRoot, "B");
nodeRoot.children.add(nodeA);
nodeRoot.children.add(nodeB);
3 ( nodeRoot) : "root", "A" "B".
, node:
for(Node child:nodeRoot.children){
System.out.println(child.value);
}
node:
System.out.println(nodeA.parent.value);
, , !
(- > ), - . - - , .
" ":
. :
, node .
java, Node. , - , node 0, 1 2 .
: a) b) (BFS/DFS).