数据结构实验之二叉树四:还原二叉树
2016-08-11 22:04
239 查看
数据结构实验之二叉树四:还原二叉树
#include<stdlib.h>
typedef struct node
{
char data;
struct node *lchild,*rchild;
}tree;
tree *creat(char *pre,char *ino,int len)
{
if(len<=0)
return NULL;
tree *root;
root=(tree *)malloc(sizeof(tree));
root->data=*pre; //确定根节点
char *a;
for(a=ino;a!=NULL;a++)
if(*a==*pre) //找到先序序列中确定的根节点
break;
int k=a-ino; //遍历过的中序序列元素
root->lchild=creat(pre+1,ino,k);
root->rchild=creat(pre+1+k,a+1,len-k-1);
return root;
}
int deep(tree *root)
{
if(!root)
return 0;
int m,n;
m=deep(root->lchild);
n=deep(root->rchild);
return m>n?m+1:n+1;
}
int main()
{
int len;
char pre[51],ino[51];
tree *root;
while(scanf("%d",&len)!=EOF)
{
scanf("%s%s",pre,ino);
root=creat(pre,ino,len);
printf("%d\n",deep(root));
}
return 0;
}
数据结构实验之二叉树四:还原二叉树
Time Limit: 1000MS Memory limit: 65536K
题目描述
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入
输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。输出
输出一个整数,即该二叉树的高度。示例输入
9 ABDFGHIEC FDHGIBEAC
示例输出
5
提示
来源
xam示例程序
#include<stdio.h>#include<stdlib.h>
typedef struct node
{
char data;
struct node *lchild,*rchild;
}tree;
tree *creat(char *pre,char *ino,int len)
{
if(len<=0)
return NULL;
tree *root;
root=(tree *)malloc(sizeof(tree));
root->data=*pre; //确定根节点
char *a;
for(a=ino;a!=NULL;a++)
if(*a==*pre) //找到先序序列中确定的根节点
break;
int k=a-ino; //遍历过的中序序列元素
root->lchild=creat(pre+1,ino,k);
root->rchild=creat(pre+1+k,a+1,len-k-1);
return root;
}
int deep(tree *root)
{
if(!root)
return 0;
int m,n;
m=deep(root->lchild);
n=deep(root->rchild);
return m>n?m+1:n+1;
}
int main()
{
int len;
char pre[51],ino[51];
tree *root;
while(scanf("%d",&len)!=EOF)
{
scanf("%s%s",pre,ino);
root=creat(pre,ino,len);
printf("%d\n",deep(root));
}
return 0;
}
相关文章推荐
- 数据结构实验之二叉树七:叶子问题
- 数据结构实验之二叉树一:树的同构
- 计蒜客 数据结构 栈 stack_expression C++
- 数据结构实验之二叉树三:统计叶子数
- 数据结构实验之二叉树的建立与遍历
- 划分树
- 数据结构实验之二叉树二:遍历二叉树
- 数组中只出现一次的数字
- 数据结构实验之查找二:平衡二叉树
- 数据结构实验之二叉树五:层序遍历
- 数据结构实验之排序一:一趟快排
- SDUTACM 树-堆结构练习——合并果子之哈夫曼树
- 数据结构实验之二叉树六:哈夫曼编码
- 数据结构之二叉树的建立与遍历
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- 数据结构实验之栈五:下一较大值(一)
- 数据结构实验之栈:行编辑器
- AVL树平衡因子详解
- 数据结构实验之栈四:括号匹配
- 数据结构实验之查找二:平衡二叉树