数据结构实验之二叉树四:(先序中序)还原二叉树
来源:互联网 发布:厦门淘宝客服工资 编辑:程序博客网 时间:2024/06/05 00:36
Problem Description
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。
Input
输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。
Output
输出一个整数,即该二叉树的高度。
Example Input
9
ABDFGHIEC
FDHGIBEAC
Example Output
5
#include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;typedef char telemtype;typedef struct Binode{ telemtype data; struct Binode *lchild,*rchild;} Binode,*Bitree;Bitree creat(Bitree &T,telemtype a[],telemtype b[],int n){ if(n==0) { return NULL; } else { int i; for(i=0; i<n; i++) { if(a[0]==b[i]) break; } T=new Binode; T->data=a[0]; T->lchild=creat(T->lchild,a+1,b,i);//这里出错,之前没加T->lchild,所以不对。因为此函数返回值类型是Bitree,所以这里必须承接着它。如果类型是void,则不用 T->rchild=creat(T->rchild,a+i+1,b+i+1,n-i-1); } return T;}或者这个函数可以这样写:void creat(Bitree &T,telemtype a[],telemtype b[],int n){ if(n==0) { T=NULL; } else { int i; for(i=0; i<n; i++) { if(a[0]==b[i]) break; } T=new Binode; T->data=a[0]; creat(T->lchild,a+1,b,i); creat(T->rchild,a+i+1,b+i+1,n-i-1); }}//如果这样写主函数内直接creat(T,a,b,n)。int depth(Bitree T)//高度即为深度{ int m,n,d; if(!T) d=0; else if(!T->lchild&&!T->rchild) d=1; else { m=depth(T->lchild); n=depth(T->rchild); d=1+(m>n?m:n); } return d;}int main(){ int n; telemtype a[55],b[55]; while(cin>>n) { cin>>a>>b; Bitree T; T=creat(T,a,b,n); n=depth(T); cout<<n<<endl; } return 0;}
阅读全文
0 0
- 数据结构实验之二叉树四:(先序中序)还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- SDUT3343数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- SDUT3343数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- java嵌套类(Nested Classes)总结
- Keil MDK中的Code, RO-data , RW-data, ZI-data分别代表什么意思?(转)
- 文章标题
- 数据结构实验之二叉树五:层序遍历
- AIDL binder IPC 远程调用
- 数据结构实验之二叉树四:(先序中序)还原二叉树
- 人工智能机器学习深度学习TensorFlow最新学习视频资料
- MVC知识点
- OutOfMemory (OOM)的类型与检测
- 税务预警早知道:长期零申报或负申报有什么后果?
- 枚举:集合对enum的支持,EnumSet,EnumMap
- Android连接蓝牙4.0
- Spring所依赖的AspectJ的jar包下载/Spring-aop注解jar包下载
- 用下拉组件写下拉框,修改参数的方法