1. 程式人生 > >二叉樹的遍歷(篇2)計算二叉樹節點的個數

二叉樹的遍歷(篇2)計算二叉樹節點的個數

樹的大小是樹中存在的元素的數量。下面的樹的大小是5。

這裡寫圖片描述

使用 Size()函式遞迴計算樹的大小。它的工作原理如下:
樹的大小=左子樹的大小+ 1 +右子樹的大小

演算法:

size(樹)
1.如果樹是空的,則返回0
2.否則
     (a)遞迴獲取左子樹的大小,即呼叫 
          size(tree-> left-subtree)
     (a)遞迴獲取右子樹的大小,即呼叫 
          大小(tree-> right-subtree)
     (c)計算樹的大小如下:
            tree_size = size(left-subtree
+ size(right-subtree+1 (d)返回tree_size

程式碼

// A recursive Java program to calculate the size of the tree

/* Class containing left and right child of current
   node and key value*/
class Node
{
    int data;
    Node left, right;

    public Node(int item)
    {
        data = item;
        left = right = null
; } } /* Class to find size of Binary Tree */ class BinaryTree { Node root; /* Given a binary tree. Print its nodes in level order using array for implementing queue */ int size() { return size(root); } /* computes number of nodes in tree */ int size(Node node) { if
(node == null) return 0; else return(size(node.left) + 1 + size(node.right)); } public static void main(String args[]) { /* creating a binary tree and entering the nodes */ BinaryTree tree = new BinaryTree(); tree.root = new Node(1); tree.root.left = new Node(2); tree.root.right = new Node(3); tree.root.left.left = new Node(4); tree.root.left.right = new Node(5); System.out.println("The size of binary tree is : " + tree.size()); } }

輸出:

樹的大小是5