我有一个数据结构,看起来像这样解析节点在字符串中的矢量一个Java树结构
private String name;
private ArrayList<Node> children;
private String parent="";
public Node(String name) {
setName(name);
children = new ArrayList<Node>();
}
别处在我的计划,我有一个节点称为一个包含整个树数据结构的“根” 。
概念上,它看起来像这样
root
/ \
/ \
node1 node2
/ \
/ \
node2 node3
/
/
node3
正如你所看到的节点可以有相同的名字。这是打算。我想为包含自己名字的每个节点创建一个字符串,并将其添加到沿袭中,并将它们存储在Vector中。
等的左手侧节点3将是"root|node1|node2|node3"
上RHS上的节点3将"root|node2|node3"
node1将被"root|node1"
等
我有一种方法,通过所述节点结构来迭代来打印每一个节点,但我我觉得难以设定每一位家长,因为我无法想出办法。任何帮助都会很棒,因为我迄今尝试过的所有方面都失败了。一个重要的注意事项是树可能不一定是二叉树,我只是用它作为例子。
下面是我用于打印树的每个节点的代码。希望这将很容易调整。
public void print() {
LinkedList<Node> open = new LinkedList<Node>();
LinkedList<Node> closed = new LinkedList<Node>();
open.add(this);
while(!open.isEmpty()) {
Node currentNode = open.removeFirst();
System.out.println(currentNode.getName());
ArrayList<Node> children = currentNode.getChildren();
closed.add(currentNode);
for(int i = 0; i < children.size(); i++) {
Node current = children.get(i);
open.addLast(current);
}
}
}
谢谢你们。
我不是在寻找打印了新的途径。我想为每个节点添加父母。 – larjudge 2010-11-11 14:10:22
对不起。我编辑了我的答案以适应这个问题。 – CVAUGHN 2010-11-11 14:24:15