SDUTACM 数据结构实验之二叉树四:还原二叉树
来源:互联网 发布:淘宝达人大v认证范文 编辑:程序博客网 时间:2024/05/15 03:44
Problem Description
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。
Input
输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。
Output
输出一个整数,即该二叉树的高度。
Example Input
9 ABDFGHIECFDHGIBEAC
Example Output
5
Hint
#include<stdio.h>#include<stdlib.h>#include<string.h>struct hh{ char data; struct hh *l; struct hh *r;};struct hh *creat(char *pre,char *in,int n){ char *p; struct hh *s; int k; if(n<=0) return NULL; s=(struct hh *)malloc(sizeof(struct hh)); s->data=*pre; for(p=in;p<in+n;p++) if(*p==*pre) break; k=p-in; s->l=creat(pre+1,in,k); s->r=creat(pre+1+k,p+1,n-k-1); return s;};int deep(struct hh *p){ int ld,rd; if(p==NULL) return 0; else { ld=deep(p->l); rd=deep(p->r); if(ld>rd) return ld+1; else return rd+1; }}int main(){ struct hh *p; int n; char pre[100],in[100]; while(scanf("%d",&n)!=EOF) { scanf("%s",&pre); scanf("%s",&in); p=creat(pre,in,n); printf("%d\n",deep(p)); } return 0;}
0 0
- SDUTACM 数据结构实验之二叉树四:还原二叉树
- sdutacm-数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- SDUT3343数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- SDUT3343数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- PPT生成PNG---解决中文乱码和字体大小、位置偏移等问题
- 单选,全选,反选简单Demo
- 今天来说说html5的拖拽
- Android中ListView的定位
- 水池数目
- SDUTACM 数据结构实验之二叉树四:还原二叉树
- 如何高效率存储微信中的 access_token 限制申请2000次/天
- node 版本升级 操作
- js之人数增加
- 正则表达入门
- 让AutoMapper在你的项目里飞一会儿(转)
- Android 7.0 FileProvider的使用
- linux编写C中include<dlfcn.h>
- 使用python发送qq消息