SDUTOJ 2804求二叉树的深度
2016-03-24 21:30
381 查看
#include<iostream> #include<stdlib.h> #include<string.h> using namespace std; char s1[100],s2[100]; typedef struct BiTNode { char data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; void build(BiTree &T,char *s1,char *s2,int n) { if(n<=0) T=NULL; else { int p=strchr(s1,s2[n-1])-s1;//查找头结点在S1中的位置. T=new BiTNode; T->data=s2[n-1]; build(T->lchild,s1,s2,p);//创建左子树 build(T->rchild,s1+p+1,s2+p,n-p-1);//创建右子树 } } int high_tree(BiTree T) { int h,left,right; if(!T) { return 0;} else { left=high_tree(T->lchild); right=high_tree(T->rchild); h=((left>right?left:right)+1); return h; } } int main() { int n,len,m; BiTree T; cin>>n; while(n--) { cin>>s1>>s2; len= strlen(s1); build(T,s1,s2,len); m=high_tree(T); cout<<m<<endl; } return 0; }
相关文章推荐
- sed简单用法示例
- spring四种依赖注入方式
- [bzoj2594][WC2006]水管局长数据加强版
- Scala学习8之排序算法比较和实现(scala)
- 加密算法类型
- CSS盒子模型与背景图片
- mysql数据库命令
- javascript中的数据类型检测
- 关于datalist
- 17 对象的使用(二)
- 利用tomcat redis 实现session共享
- Java实现给图片添加水印
- 网络7层协议
- CSS书写
- 中文 iOS/Mac 开发博客列表
- leetcode 38. Count and Say
- C++作业2
- PHP错误报告
- BZOJ_P1529 [POI2005]ska Piggy banks(并查集)
- 南宁大宗平台里 drawline的问题