求二叉树的深度
来源:互联网 发布:高职大数据专业课程 编辑:程序博客网 时间:2024/06/04 18:00
求二叉树的深度
Time Limit: 1000MS Memory limit: 65536K
题目描述
已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度。
输入
输入数据有多组,输入T,代表有T组数据。每组数据包括两个长度小于50的字符串,第一个字符串表示二叉树的中序遍历,第二个表示二叉树的后序遍历。
输出
输出二叉树的深度。
示例输入
2dbgeafcdgebfcalnixulinux
示例输出
43
提示
来源
示例程序
- 提交
- 状态
#include<stdio.h>#include<stdlib.h>#include<string.h>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -1#define MAXQSIZE 100typedef int Status;typedef char TElemType;TElemType ch[51];Status i;typedef struct BiTNode{ TElemType data; struct BiTNode *lchild,*rchild;} BiTNode,*BiTree;typedef BiTree QElemType;BiTree CreateBiTree(char *hou,char *zhong,int len){ if(len<=0)return NULL; BiTNode *T; T=(BiTree)malloc(sizeof(BiTNode)); T->data=*(hou+len-1); char *p; for(p=zhong; p; p++) if(*p==*(hou+len-1)) break; int k=p-zhong; T->lchild=CreateBiTree(hou,zhong,k); T->rchild=CreateBiTree(hou+k,p+1,len-k-1); return T;}Status shendu(BiTree T){ int m,n; if(!T)return 0; m=shendu(T->lchild); n=shendu(T->rchild); if(m>n) return m+1; else return n+1;}int main(){ int len,n; char hou[51],zhong[51]; BiTree T; scanf("%d",&n); while(n--) { scanf("%s%s",zhong,hou); len=strlen(hou); T=CreateBiTree(hou,zhong,len); printf("%d\n",shendu(T)); } return 0;}
0 0
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 求二叉树的深度
- 基于SMT32L476的hardfault分析处理
- android-Camera2Basic源码逻辑流程解析
- 使用JNI开发的经验分享
- 使用IntelliJ IDEA开发SpringMVC网站(二)框架配置
- Search Insert Position
- 求二叉树的深度
- 接口
- Android开发之Android体系架构简介(二)
- C# 16进制与字符串、字节数组之间的转换
- UVA11300 Spreading the Wealth (数学推导+中位数)
- 使用css及简单的js实现酷炫的响应式slider
- 三大WEB服务器对比分析 (apache ,lighttpd,nginx)
- Mocapy++ in Heart
- Django快速学习搭建blog项目