求二叉树的深度
2015-08-11 10:34
375 查看
题目描述
已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度。输入
输入数据有多组,输入T,代表有T组数据。每组数据包括两个长度小于50的字符串,第一个字符串表示二叉树的中序遍历,第二个表示二叉树的后序遍历。输出
输出二叉树的深度。示例输入
2 dbgeafc dgebfca lnixu linux
示例输出
4 3
#include <stdio.h> #include <string.h> #include <stdlib.h> struct node { char data; struct node *l,*r; }; char str1[1010],str2[1010]; struct node *creat(char *str1,char *str2,int len) { if(len<=0) return NULL; struct node *root=(struct node*)malloc(sizeof(struct node)); root->data=str2[len-1]; int p; p=strchr(str1,str2[len-1])-str1; root->l=creat(str1,str2,p); root->r=creat(str1+p+1,str2+p,len-p-1); return root; } int deep(struct node *p) { int ld,rd; if(!p) return 0; else { ld=deep(p->l); rd=deep(p->r); if(ld>rd) return ld+1; else return rd+1; } } int main() { int T; scanf("%d",&T); while(T--) { int num=0; struct node *head; scanf("%s %s",str1,str2); int l=strlen(str2); head=creat(str1,str2,l); num=deep(head); printf("%d\n",num); } return 0; }
相关文章推荐
- 编程学习必备七个阶段
- nodejs 播放媒体文件
- java连接数据库核心代码
- lamp(二) apache 配置
- UDP简单通讯
- 配置RHEV中Linux 虚拟机使用 IPA(IDM)实现单点登录的方法
- js与jquery获取滚动条距浏览器顶部的距离
- throws 和 try catch 的区别与联系
- A1069 . The Black Hole of Numbers (20)
- 关于烂代码的那些事(上)
- ZOJ3742Bellywhite's Algorithm Homework
- centos 安装tkdiff
- node 调试debug
- 网易游戏 从笔试到offer 经验分享
- 社説 20150811 生殖補助医療 法整備に向けて議論深めよう
- 模式对话框与非模式对话框的区别
- BeanUtils.copyProperties
- 打印保持到文件
- 20-08-其他对象API(Calendar类-基本演示)
- 20-09-其他对象API(Calendar类-练习)