标签:影响 build std 序列 .com har scan clu oid
输入一棵二叉树的先序遍历和中序遍历,输出它的后序遍历序列。
运行如图
目前还有一些细节没有懂,不过不影响我仍然喜欢学习的心情~
#include<stdio.h> #include<string.h> #define N 1000 char s1[N],s2[N],ans[N]; //s1是先序遍历,s2是中序遍历 void build(int n,char *s1,char *s2,char *s) {//构造长度为n的后续遍历。 if(n <= 0) return; int p = strchr(s2,s1[0])-s2;//找到根结点在中序遍历中的位置 build(p,s1+1,s2,s);//递归构造左子树的后续遍历 build(n-p-1,s1+1+p,s2+1+p,s+p);//递归构造右子树的后续遍历 s[n-1] = s1[0];//把根结点添加到最后 return; } int main() { while(scanf("%s%s",s1,s2)!=EOF) { int n = strlen(s1); build(n,s1,s2,ans); ans[n] = ‘\0‘;//ans存储后续遍历序列 printf("%s\n",ans); } return 0; }
标签:影响 build std 序列 .com har scan clu oid
原文地址:http://www.cnblogs.com/chengdongni/p/7818621.html