Tree's Depth(二叉树)
来源:互联网 发布:虚拟机中linux怎么联网 编辑:程序博客网 时间:2024/06/14 08:50
1.题目:
Problem Description
一个名字叫Small Green的同学,很喜欢研究树的问题。某一天,他随意地在纸上乱涂乱画,画出了各不相同的二叉树,他同时在想:一颗满的二叉树的深度并不难求。但如果要求出一颗二叉树(可能不是满二叉树)的深度,那么该如何求呢?
Input
输入包含多个例子,每个例子的第一行为一个整数n,表示以下有n组数据,每组数据占一行,为扩展二叉树的前序遍历序列(长度小于50,若节点为NULL则用'#'表示,否则用小写字母表示)。
Output
输出该二叉树的深度。
Sample Input
2abcd####efg####abcd####efg#h###i##
Sample Output
45
2.参考代码:
#include <iostream>using namespace std;struct BiNode{char data;BiNode* lchild,* rchild;};class BiTree{private:BiNode* root;BiNode* Creat();void Release(BiNode* root);public:BiTree();~BiTree();BiNode* GetRoot(){return root;}int depth(BiNode* root);};BiNode* BiTree::Creat(){BiNode* root=new BiNode;char ch;cin>>ch;if(ch=='#')root=NULL;else{root->data=ch;root->lchild=Creat();root->rchild=Creat();}return root;}void BiTree::Release(BiNode* root){if(root){Release(root->lchild);Release(root->rchild);delete root;}}BiTree::BiTree(){root=Creat();}BiTree::~BiTree(){Release(root);}int BiTree::depth(BiNode* root){int l,r;if(root==NULL)return 0;else{l=depth(root->lchild);r=depth(root->rchild);return l>r?(l+1):(r+1);}}int main(){int n;while(cin>>n){while(n--){BiTree bt;BiNode* root=bt.GetRoot();cout<<bt.depth(root)<<endl;}}return 0;}
- Tree's Depth(二叉树)
- 最深二叉树 (Maximum Depth of Binary Tree)
- 104.Maximum Depth of Binary Tree(二叉树深度)
- 104. Maximum Depth of Binary Tree (二叉树)
- Leetcode - Tree - 104. Maximum Depth of Binary Tree(DFS求二叉树最深深度)
- leetcode:Maximum Depth of Binary Tree(计算二叉树深度) 【面试算法】
- Maximum Depth of Binary Tree 二叉树的最大深度(重)
- LeetCode | Maximum Depth of Binary Tree(二叉树的深度)
- LeetCode OJ 之 Minimum Depth of Binary Tree(二叉树的最小深度)
- LeetCode OJ 之 Maximum Depth of Binary Tree (二叉树的最大深度)
- [leetcode]Maximum Depth of Binary Tree (求二叉树的最大深度 C语言)
- leetCode 104.Maximum Depth of Binary Tree(二叉树最大深度) 解题思路和方法
- [LeetCode-104] Maximum Depth of Binary Tree(二叉树最大深度)
- leetcode系列(28)Maximum Depth of Binary Tree 求二叉树的最大深度
- LeetCode 104 Maximum Depth of Binary Tree(二叉树的最大深度)
- [LeetCode-111] Minimum Depth of Binary Tree (二叉树最小深度)
- LeetCode 104. Maximum Depth of Binary Tree(二叉树高度)
- LeetCode 111. Minimum Depth of Binary Tree(二叉树最小深度)
- 简述fork函数的用法
- i++和++i
- linux下-rwxr-xr-x 1 root root 702160 2008-05-12 11:33 bash含义
- OCP-1Z0-053-V12.02-46题
- 充实
- Tree's Depth(二叉树)
- NYOJ58最小步数(神搜)
- 【D3.js数据可视化系列教程】(十八)--组合添加删除
- C内存申请释放
- 深入java虚拟机(四)——java虚拟机的垃圾回收机制
- hdu 4122Alice's mooncake shop(单调队列)
- W3C之PHP提高篇
- Java concurrent包里面的TimeUnit使用方法
- Dos中的注释