求二叉树的深度
来源:互联网 发布:umts是什么网络类型 编辑:程序博客网 时间:2024/06/05 02:58
求二叉树的深度
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度。
输入
输入数据有多组,输入T组数据。每组数据包括两个长度小于50的字符串,第一个字符串表示二叉树的中序遍历,第二个表示二叉树的后序遍历。
输出
输出二叉树的深度。
示例输入
2dbgeafcdgebfcalnixulinux
示例输出
43
提示
#include<bits/stdc++.h>using namespace std;typedef struct node{ char data; struct node *lchild,*rchild;}BiTNode ,*BiTree;void pro_mid_createBiTree(BiTree &T,char *mid,char *last,int len)//已知中序后序建立树{ if(len==0) { T=NULL; return ; } char ch; ch = last[len-1]; int index = 0; while(mid[index]!=ch) { index++; } T=(BiTNode *)malloc(sizeof(BiTNode )); T->data= ch; pro_mid_createBiTree(T->lchild,mid,last,index); pro_mid_createBiTree(T->rchild,mid+index+1,last+index,len-index-1);}int depth(BiTree T)//树的深度递归求解{ int deep=0,ldep,rdep; if(T) { ldep = depth(T->lchild); rdep = depth(T->rchild); deep = ldep>=rdep?ldep+1:rdep+1; } return deep;}int main(){ BiTree T; int n; char last[110],mid[110]; while(cin>>n) { while(n--) { cin>>mid>>last; int len = strlen(mid); pro_mid_createBiTree(T,mid,last,len); cout<<depth(T)<<endl; } } return 0;}
0 0
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- ztree树中的id,pid
- 域名那些事
- Android 自定义View UC下拉刷新效果(一)
- Android绘图进阶之Path详解
- 【leetcode Database】185. Department Top Three Salaries
- 求二叉树的深度
- 用基于信息熵的topsis方法实现学生成绩的综合排名
- 【华为 OJ 】字符串加密
- java synchronized关键字
- unity 滚动视图的优化
- 新手上路 layer弹层组件 (www.layui.com)
- IOS面试宝典(一)(持续更新)
- Python学习笔记1–Python概述
- Dubbo隐式传参