二叉樹的遍歷(篇2)計算二叉樹節點的個數
阿新 • • 發佈:2019-02-07
樹的大小是樹中存在的元素的數量。下面的樹的大小是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