在此示例中,我們將學習使用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ù)量。