二叉树的遍历(篇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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值