在Java中,可以使用Tree類(lèi)和Node類(lèi)來(lái)定義一棵樹(shù)。
public class Node {
int val;
Node left;
Node right;
Node(int val) {
this.val = val;
}
}
這里的Node類(lèi)表示樹(shù)中的一個(gè)節(jié)點(diǎn)。其中,val表示節(jié)點(diǎn)存儲(chǔ)的值,left表示左子節(jié)點(diǎn),right表示右子節(jié)點(diǎn)。
public class Tree {
Node root;
Tree(Node root) {
this.root = root;
}
}
而Tree類(lèi)則表示整棵樹(shù),其中root表示根節(jié)點(diǎn)。
通過(guò)以上定義,就可以創(chuàng)建一棵樹(shù)并進(jìn)行操作。
Node node1 = new Node(1);
Node node2 = new Node(2);
Node node3 = new Node(3);
Node node4 = new Node(4);
Node node5 = new Node(5);
node1.left = node2;
node1.right = node3;
node2.left = node4;
node2.right = node5;
Tree tree = new Tree(node1);
上述代碼創(chuàng)建了以下這棵樹(shù):
1 / \ 2 3 / \ 4 5
可以通過(guò)遍歷樹(shù)來(lái)輸出樹(shù)中的節(jié)點(diǎn)值:
public void preorder(Node node) {
if (node == null) return;
System.out.print(node.val + " ");
preorder(node.left);
preorder(node.right);
}
tree.preorder(tree.root); // 輸出 1 2 4 5 3
preorder方法實(shí)現(xiàn)了前序遍歷,輸出順序?yàn)楦?jié)點(diǎn)、左子樹(shù)、右子樹(shù)。
以上便是使用Java定義樹(shù)的基本方法。