在此示例中,我們將學(xué)習(xí)使用Java計算樹中葉節(jié)點的數(shù)量。
class Node {
int item;
Node left, right;
public Node(int key) {
item = key;
left = right = null;
}
}
class Main {
//樹根
Node root;
Main() {
root = null;
}
//計算葉節(jié)點的方法
public static int countLeaf(Node node) {
if(node == null) {
return 0;
}
//如果節(jié)點的左、右為空
//它是葉節(jié)點
if (node.left == null && node.right == null) {
return 1;
}
else {
return countLeaf(node.left) + countLeaf(node.right);
}
}
public static void main(String[] args) {
//創(chuàng)建一個Tree對象
Main tree = new Main();
//創(chuàng)建樹的節(jié)點
tree.root = new Node(5);
tree.root.left = new Node(3);
tree.root.right = new Node(8);
//創(chuàng)建左子節(jié)點的子節(jié)點
tree.root.left.left = new Node(2);
tree.root.left.right = new Node(4);
//創(chuàng)建右子節(jié)點的子節(jié)點
tree.root.right.left = new Node(7);
tree.root.right.right = new Node(9);
//調(diào)用方法以計算葉節(jié)點
int leafNodes = countLeaf(tree.root);
System.out.println("葉節(jié)點總數(shù) = " + leafNodes);
}
}輸出結(jié)果
葉節(jié)點總數(shù) = 4

在上面的示例中,我們已經(jīng)用Java實現(xiàn)了樹數(shù)據(jù)結(jié)構(gòu)。在這里,我們使用遞歸來計算樹中葉節(jié)點的數(shù)量。