码迷,mamicode.com
首页 > 其他好文 > 详细

计算二叉树的大小

时间:2019-03-26 19:41:58      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:size   ima   ==   http   bit   调用   int   ace   技术   

二叉树的大小是指树中存在的节点的数量。例如,下面这棵二叉树的大小是5。

技术图片

 

我们定义 size(tree) 函数用来递归地计算二叉树 tree 的大小,它的工作原理如下

二叉树的大小 = 1 + 左子树的大小 + 右子树的大小

 

Algorithm: 

size(tree)
1. 如果 tree 为空,则返回0
2. 否者
     (a) 通过递归地调用 size(tree.left) 获取左子树的大小
     (a) 通过递归地调用 size(tree.right) 获取右子树的大小
     (c) 用如下公式求出二叉树的大小:
            size(tree)  =  size(left) + size(right) + 1
     (d) 返回 size(tree)

#include <bits/stdc++.h> 
using namespace std; 

class node  
{  
    public: 
    int data;  
    node* left;  
    node* right;  
};  
  

node* newNode(int data)  
{  
    node* Node = new node(); 
    Node->data = data;  
    Node->left = NULL;  
    Node->right = NULL;  
          
    return(Node);  
}  
  

int size(node* node)  
{  
    if (node == NULL)  
        return 0;  
    else
        return(size(node->left) + 1 + size(node->right));  
}  
  

int main()  
{  
    node *root = newNode(1);  
    root->left = newNode(2);  
    root->right = newNode(3);  
    root->left->left = newNode(4);  
    root->left->right = newNode(5);  
      
    cout << "Size of the tree is " << size(root);  
    return 0;  
}  

 

计算二叉树的大小

标签:size   ima   ==   http   bit   调用   int   ace   技术   

原文地址:https://www.cnblogs.com/xielei/p/10602812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!