还原二叉树
来源:互联网 发布:北通手柄 mac设置 编辑:程序博客网 时间:2024/05/17 22:13
数据结构实验之二叉树四:还原二叉树
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。
输入
输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。
输出
输出一个整数,即该二叉树的高度。
示例输入
9
ABDFGHIEC
FDHGIBEAC
示例输出
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。
输入
输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。
输出
输出一个整数,即该二叉树的高度。
示例输入
9
ABDFGHIEC
FDHGIBEAC
示例输出
5
/*
思想:用归纳法来分析递归.
*/
# include <stdio.h># include <stdlib.h>typedef struct node{ char data; struct node*l; struct node*r;} Node;int N;Node * BinaryTreeFromOrderings(char *inorder,char *preorder,int length);int Depth(Node*root);int main(){ Node *root; int deep; char pre[55]; char in[55]; while((scanf("%d",&N))!=EOF) { scanf("%s",pre); scanf("%s",in); root = BinaryTreeFromOrderings(in,pre,N); deep = Depth(root); printf("%d\n",deep); } return 0;}Node*BinaryTreeFromOrderings(char *inorder,char *preorder,int length){ if(length == 0)//递归终止条件 { return NULL; } Node * root = (Node*)malloc(sizeof(Node)); root->data = *preorder; int rootIndex = 0; for( ; rootIndex < length; rootIndex++)//在中序序列中找到根,来分开左右子树 { if(inorder[rootIndex] == *preorder) { break; } } root->l = BinaryTreeFromOrderings(inorder, preorder + 1, rootIndex); root->r = BinaryTreeFromOrderings(inorder+rootIndex+1,preorder+rootIndex + 1,length-(rootIndex + 1)); return root;}int Depth(Node*root){ if(root == NULL) { return 0; } int left = 1; int right = 1; left += Depth(root->l); right += Depth(root->r); return left > right ? left : right;}
0 0
- 还原二叉树
- 二叉树还原
- 还原二叉树
- 二叉树的还原
- pta 还原二叉树
- 还原二叉树
- 还原二叉树
- 还原二叉树
- 还原二叉树
- 数据结构--还原二叉树
- 还原二叉树
- 还原二叉树
- 还原二叉树
- 二叉树还原
- 还原二叉树
- 二叉树的还原
- 先序中序还原二叉树 和 中序后序还原二叉树 总结
- 二叉树遍历序列还原
- 最长公共子序列
- malloc和new的区别
- hdu 1754 I Hate It 线段树
- laravel5.2 使用redis
- 表中包含BLOB类型字段时的迁移问题
- 还原二叉树
- Codeforces Round #367 (Div. 2) E. Working routine (十字链表,二维高效交换)
- Southern Subregion Problem L. Stock Trading Robot
- CC2640之配置串口打印及可变参数打印
- 【codeforces 706B Interesting drink】
- cocos2dx tolua 再见了pkg
- JVM性能调优
- 写在前面
- 【codeforces 706A Beru-taxi】