数据结构实验之二叉树四:(先序中序)还原二叉树
2018-11-15 20:43
337 查看
数据结构实验之二叉树四:(先序中序)还原二叉树
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。
Input
输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。
Output
输出一个整数,即该二叉树的高度。
Sample Input
[code]9 ABDFGHIEC FDHGIBEAC
Sample Output
[code]5
Hint
Source
xam
[code]#include <bits/stdc++.h> using namespace std; struct bitree { char data; struct bitree *lc; struct bitree *rc; }; bitree *create(int n,char a[],char b[]) { bitree *tree; char *p; if(!n) tree = NULL; else { tree = new bitree; tree->data = a[0]; for(p=b; p!='\0'; p++) { if(*p==a[0]) break; } int t; t = p-b; tree->lc = create(t,a+1,b); tree->rc = create(n-1-t,a+t+1,p+1); } return tree; } int depth(bitree *tree) { int d = 0; if(tree) { int ld = depth(tree->lc); int rd = depth(tree->rc); d = ld>rd?ld+1:rd+1; } return d; } int main() { int n; char a[51],b[51]; while(cin>>n) { bitree *tree; cin>>a>>b; tree = create(n,a,b); cout<<depth(tree)<<endl; } return 0; }
阅读更多
相关文章推荐
- [SDUT](3343)数据结构实验之二叉树四:(先序中序)还原二叉树
- 3343 数据结构实验之二叉树四:(先序中序)还原二叉树
- 3343 数据结构实验之二叉树四:(先序中序)还原二叉树
- 数据结构实验之二叉树四:(先序中序)还原二叉树
- 数据结构实验之二叉树四:(先序中序)还原二叉树
- SDUT-3343 数据结构实验之二叉树四:(先序中序)还原二叉树
- 数据结构实验之二叉树四:(先序中序)还原二叉树
- SDUT 3343 数据结构实验之二叉树四:(先序中序)还原二叉树
- 数据结构实验之二叉树四:(先序中序)还原二叉树
- 数据结构实验之二叉树四:(先序中序)还原二叉树
- 数据结构实验之二叉树四:(先序中序)还原二叉树 oj
- 数据结构实验之二叉树四:(先序中序)还原二叉树
- C语言 数据结构之二叉树 数据结构实验之二叉树四:(先序中序)还原二叉树
- 数据结构实验之二叉树四:(先序中序)还原二叉树
- 数据结构实验之二叉树四:(先序中序)还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树