数据结构实验之二叉树四:还原二叉树
来源:互联网 发布:南昌seo自动优化软件 编辑:程序博客网 时间:2024/04/29 23:50
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=3343&cid=1796
数据结构实验之二叉树四:还原二叉树
Time Limit: 1000MS Memory limit: 65536K
题目描述
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。
输入
输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。
输出
输出一个整数,即该二叉树的高度。
示例输入
9 ABDFGHIECFDHGIBEAC
示例输出
5
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<queue>using namespace std;typedef char type;typedef struct tnode{ struct tnode *lc; struct tnode *rc; type data;}tnode,*tree;tree creat(char *bef,char *mid,int len){ tree T; if(len<=0) return NULL; T=(tree)malloc(sizeof(tnode)); char *p; T->data=*bef; for(p=mid;p!=NULL;p++) if(*p==*bef) break; int llen=p-mid; T->lc=creat(bef+1,mid,llen); T->rc=creat(bef+llen+1,p+1,len-llen-1); return T;}int countdepth(tree &T){ int ldepth,rdepth; if(!T) return 0; else { ldepth=countdepth(T->lc); rdepth=countdepth(T->rc); return ldepth>rdepth?ldepth+1:rdepth+1; }}int main(){ tree T; char befs[60],mids[60]; int len,depth; while(~scanf("%d",&len)) { scanf("%s\n%s",befs,mids); T=creat(befs,mids,len); depth=countdepth(T); printf("%d\n",depth); } return 0;}
0 0
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- SDUT3343数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- SDUT3343数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 数据结构实验之二叉树四:还原二叉树
- 详解 lsusb命令
- android开发设置应用开机自启动(2)——并使应用实时保持在前台
- 浅谈如何将NoSQL引入现有架构系统
- RMQ转换LCA模板 ST算法
- Codeforce 705B 组合/统计 博弈论
- 数据结构实验之二叉树四:还原二叉树
- day8-9(一)
- JS input 限制输入类型
- web特征值判断
- caffe 更改源码,使得输入数据为多个标签
- 利用SVM(支持向量机)和MNIST库在OpenCV环境下实现手写数字0~9的识别
- iOS swift 基础五
- LeetCode—381. Insert Delete GetRandom O(1) - Duplicates allowed
- 用MathType编辑上下尖括号有哪些技巧