二元树的深度(树)
来源:互联网 发布:linux 防止暴力破解 编辑:程序博客网 时间:2024/06/10 15:29
二元树的深度(树)
题目:输入一棵二元树的根结点,求该树的深度。
从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
例如:输入二元树:
10
/ /
6 14
/ / /
4 12 16
输出该树的深度3。
二元树的结点定义如下:
struct SBinaryTreeNode // a node of the binary tree
{
int m_nValue; // value of node
SBinaryTreeNode *m_pLeft; // left child of node
SBinaryTreeNode *m_pRight; // right child of node
};
题目:输入一棵二元树的根结点,求该树的深度。
从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
例如:输入二元树:
10
/ /
6 14
/ / /
4 12 16
输出该树的深度3。
二元树的结点定义如下:
struct SBinaryTreeNode // a node of the binary tree
{
int m_nValue; // value of node
SBinaryTreeNode *m_pLeft; // left child of node
SBinaryTreeNode *m_pRight; // right child of node
};
分析:这道题本质上还是考查二元树的遍历。
- //coder:LEE 20120330
- #include<iostream>
- #include<CASSERT>
- using namespace std;
- struct SBinaryTreeNode
- {
- int m_nValue;
- SBinaryTreeNode * m_pLeft;
- SBinaryTreeNode * m_pRight;
- };
- void AddNode(SBinaryTreeNode *& root,int n)
- {
- if (!root)
- {
- root=(SBinaryTreeNode *)malloc(sizeof(SBinaryTreeNode ));
- root->m_nValue=n;
- root->m_pLeft=NULL;
- root->m_pRight=NULL;
- return;
- }
- if(n<root->m_nValue)
- AddNode(root->m_pLeft,n);
- else
- AddNode(root->m_pRight,n);
- }
- void Traverse(SBinaryTreeNode * root)
- {
- if(!root)
- return;
- Traverse((root->m_pLeft));
- cout<<root->m_nValue<<" ";
- Traverse(root->m_pRight);
- }
- int ComputeDepthOfBiTree(SBinaryTreeNode * root)
- {
- if(root==NULL)
- return 0;
- int LeftDepth=ComputeDepthOfBiTree(root->m_pLeft);
- int RightDepth=ComputeDepthOfBiTree(root->m_pRight);
- return LeftDepth>RightDepth?LeftDepth+1:RightDepth+1;
- }
- int main()
- {
- SBinaryTreeNode * root=NULL;
- AddNode(root,8);
- AddNode(root,6);
- AddNode(root,10);
- AddNode(root,5);
- AddNode(root,7);
- AddNode(root,9);
- AddNode(root,11);
- AddNode(root,12);
- Traverse(root);
- cout<<endl;
- cout<<ComputeDepthOfBiTree(root);
- return 0;
- }
0 0
- 二元树的深度
- 二元树的深度
- 二元树的深度
- 二元树的深度
- 二元树的深度
- 52.二元树的深度(树)。
- 二元树的深度(树)
- 二元树的深度[数据结构]
- 求二元树的深度
- 求二元树的深度
- 52 二元树的深度
- 程序员面试题精选(27):二元树的深度
- 第五十二题(二元树的深度)
- 剑指offer(27)-二元树的深度[数据结构]
- 二元树的应用
- 输入一棵二元树的根结点,求该树的深度
- 程序员面试题精选100题(27)-二元树的深度
- 微软,Google面试题 (27) —— 二元树的深度
- HDUJ 2070 Fibbonacci Number
- 进程通信
- UVA12298 Super Poker II 递推
- mvc
- 电话号码 【trie树】
- 二元树的深度(树)
- 初探boost之pool库学习笔记
- MFC资源中添加PNG图片
- vim 配置
- dwr
- ACM中无穷大的设置
- fedora安装之后
- openSUSE 13.1安装配置日记
- openSUSE安装virtualbox