English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом примере мы будем изучать, как использовать Java для вычисления количества листовых узлов в дереве.
class Node { int item; Node left, right; public Node(int key) { item = key; left = right = null; } } class Main { // Корень дерева Node root; Main() { root = null; } // Метод подсчета листовых узлов public static int countLeaf(Node node) { if (node == null) { return 0; } // Если левый и правый узлы пусты // Это листовой узел if (node.left == null && node.right == null) { return 1; } else { return countLeaf(node.left) + countLeaf(node.right); } } public static void main(String[] args) { // Создание объекта Tree Main tree = new Main(); // Создание узлов дерева tree.root = new Node(5); tree.root.left = new Node(3); tree.root.right = new Node(8); //Создание подузлов левого поддерева tree.root.left.left = new Node(2); tree.root.left.right = new Node(4); //Создание подузлов правого поддерева tree.root.right.left = new Node(7); tree.root.right.right = new Node(9); //Вызов метода для вычисления количества листовых узлов int leafNodes = countLeaf(tree.root); System.out.println("Общее количество листовых узлов = " + leafNodes); } }
Результат вывода
Общее количество листовых узлов = 4
В上面的 примере, мы уже реализовали структуру данных дерево с помощью Java. Здесь, мы используем рекурсию для вычисления количества листовых узлов в дереве.