我有一個數據結構,看起來像這樣解析節點在字符串中的矢量一個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