算法竞赛入门经典 第六章 二叉树重建
来源:互联网 发布:2017淘宝双11红包雨 编辑:程序博客网 时间:2024/06/05 15:33
输入一棵二叉树的先序遍历和中序遍历序列,输出它的后序遍历序列。
样例输入:
DBACEGF ABCDEFG
BCAD CBAD
样例输出 :
ACBFGED
CDAB
*p=strchr(s2,s1[0]); *p里边存的是在s2中第一次出现s1[0]的位置开始一直到s2字符串结束,
p=strchr(s2,s1[0])-s2; p里边存的是s1[0]在s2中的位置,是一个数。
#include <stdio.h>#include <string.h>char s1[20],s2[20],ans[20];void build(int n,char* s1,char*s2,char *s){ if(n<=0) return ; int p=strchr(s2,s1[0])-s2; //找到根结点在s2中的位置 build(p,s1+1,s2,s); //建立左子树的后序遍历 build(n-p-1,s1+p+1,s2+p+1,s+p);//建立右子树的后序遍历 s[n-1]=s1[0];//在最后的位置将根结点插入}//整个遍历之后,一次递归将当前的根结点放在最后,递归完毕,后序遍历也就出来了。int main (void){ int n,i; while(scanf("%s%s",s1,s2)!=EOF) //s1表示先序遍历,s2代表中序遍历 { n=strlen(s1); build(n,s1,s2,ans); //构造后序遍历 ans[n]='\0'; printf("%s\n",ans); //输出后序遍历 } return 0;}
0 0
- 算法竞赛入门经典 第六章 二叉树重建
- 《算法竞赛入门经典》第六章6.3树和二叉树总结
- 算法竞赛入门经典第六章
- 算法竞赛入门经典第六章习题
- 算法竞赛入门经典 第二版 习题6-3 二叉树重建 Tree Recovery uva536
- 算法竞赛入门经典(第2版)习题6-3 二叉树重建 UVa536
- 算法竞赛入门经典 第六章 数据结构基础
- 算法竞赛入门经典 第六章层次遍历
- 算法竞赛入门经典 第六章 黑白图像
- 算法竞赛入门经典:第六章 数据结构基础 6.2铁轨
- 算法竞赛入门经典:第六章 数据结构基础 6.4测试
- 算法竞赛入门经典:第六章 数据结构基础 6.11迷宫
- 《算法竞赛入门经典》第六章6.1,6.2总结
- 《算法竞赛入门经典》-第六章-数据结构基础
- 算法竞赛入门经典:第六章 数据结构基础 6.9 根据二叉树的后序和中序确定前序序列
- 算法竞赛入门经典读书笔记——二叉树
- 算法入门经典第六章数据结构—树和二叉树-1.二叉树的编号
- 算法竞赛入门经典第6章例题(2):二叉树部分+四分树
- oracle 常用函数
- C结构体之位域(位段)
- iOS安全攻防(二十三):Objective-C代码混淆
- Super源码网站
- android Handler 机制研究学习笔记
- 算法竞赛入门经典 第六章 二叉树重建
- 黑马程序员----集合之2
- Intent常用Flag介绍
- AsyncQueryHandler的使用
- 颇有深度的十九句话
- Java关键字final、static使用总结
- VS2010中添加WebService注意的几个地方
- Swift 入门教程
- HDU 1075 What Are You Talking About