我正在開發一個j2ee項目,我需要一個動態菜單。 我有數據庫中的數據。現在我想製作一棵樹並遍歷樹的預訂。 你能幫我怎麼做嗎?如何製作n-tree樹並預先遍歷
0
A
回答
1
這是我的工作代碼,用於創建樹並遍歷預訂和有序。
希望它能幫助你。
public class NaryTree {
static HashMap<String, NaryTree.Node> tree = new HashMap<String, NaryTree.Node>();
public static void main(String[] args) {
new NaryTree().makeTree();
traverseFrom(tree.get("000"));
}
public static void traverseFrom(Node rootNode) {
if(rootNode.getChildren().size()!= 0) {
for (Node pNode : rootNode.getChildren()) {
System.out.println(" Lavel:"+pNode.lavel+" - Node Value:"+pNode.val); // preorder traverse
traverseFrom(pNode);
//System.out.print(" Lavel :"+pNode.lavel+"- Node Value :"+pNode.val); // preorder traverse
}
}
}
private void makeTree() {
Node newNode = new Node("000", null, new ArrayList<NaryTree.Node>());
newNode.setLavel(0);
tree.put("000", newNode);
//newNode.getParent().getChildren().add(newNode);
newNode = new Node("101", tree.get("000"), new ArrayList<NaryTree.Node>());
tree.put("101", newNode);
newNode.getParent().getChildren().add(newNode);
newNode = new Node("102", tree.get("000"), new ArrayList<NaryTree.Node>());
tree.put("102", newNode);
newNode.getParent().getChildren().add(newNode);
newNode = new Node("103", tree.get("000"), new ArrayList<NaryTree.Node>());
tree.put("103", newNode);
newNode.getParent().getChildren().add(newNode);
newNode = new Node("201", tree.get("101"), new ArrayList<NaryTree.Node>());
tree.put("201", newNode);
newNode.getParent().getChildren().add(newNode);
newNode = new Node("202", tree.get("101"), new ArrayList<NaryTree.Node>());
tree.put("202", newNode);
newNode.getParent().getChildren().add(newNode);
newNode = new Node("205", tree.get("103"), new ArrayList<NaryTree.Node>());
tree.put("205", newNode);
newNode.getParent().getChildren().add(newNode);
newNode = new Node("301", tree.get("201"), new ArrayList<NaryTree.Node>());
tree.put("301", newNode);
newNode.getParent().getChildren().add(newNode);
newNode = new Node("104", tree.get("000"), new ArrayList<NaryTree.Node>());
tree.put("104", newNode);
newNode.getParent().getChildren().add(newNode);
}
private class Node {
private String val;
private int lavel;
private Node parent;
private List<Node> children;
public Node(String val, Node parent, List<Node> children) {
this.val = val;
this.parent = parent;
this.children = children;
if(parent!=null)
this.lavel = (int) parent.getLavel()+1;
else
this.lavel = 0;
}
public String getVal() {
return val;
}
public void setVal(String val) {
this.val = val;
}
public Node getParent() {
return parent;
}
public void setParent(Node parent) {
this.parent = parent;
}
public List<Node> getChildren() {
return children;
}
public void setChildren(List<Node> children) {
this.children = children;
}
public int getLavel() {
return lavel;
}
public void setLavel(int lavel) {
this.lavel = lavel;
}
}
}
0
相關問題
- 1. 預先遍歷樹時沒有輸出
- 2. 使用預先遍歷在Java中複製二叉樹
- 3. 預訂樹遍歷複製文件夾
- 4. 如何修改預購樹的遍歷
- 5. 遍歷與預先加載
- 6. 在Python中預先遍歷
- 7. 預先遍歷二叉樹。如果vs而
- 8. 遞歸查詢鄰接列表以預先遍歷SQL中的樹遍歷?
- 9. 遍歷樹遍歷
- 10. 二叉樹,返回預先遍歷中的下一個節點
- 11. 從預先遍歷構建二叉樹:堆棧溢出錯誤
- 12. 使用遞歸函數預先遍歷XML樹?
- 13. 修改先序樹遍歷的路徑
- 14. 廣度優先遍歷樹,巨蟒
- 15. jquery樹遍歷不工作
- 16. jquery樹遍歷不工作
- 17. Haskell預訂遍歷樹到列表
- 18. 二叉搜索樹遍歷 - 預購
- 19. SQL樹遍歷
- 20. GWT樹遍歷
- 21. 樹遍歷python
- 22. 樹的遍歷
- 23. 遍歷樹枝
- 24. BST預序遍歷並將樹內容寫入臨時數組
- 25. 在Python中遍歷n遍歷樹並返回節點實例
- 26. 樹遍歷,從樹預先生成鏈接列表併爲其編寫測試用例
- 27. 四叉樹遍歷
- 28. 遍歷目錄樹
- 29. 遍歷對象樹
- 30. 在樹中遍歷
不錯的代碼來製作一棵樹。但我需要製作html ul和ol列表 – Samim 2014-12-03 04:18:27