二叉树重建 ( 根据中序序列和前序序列获取后序序列)

it2025-12-10  7

void build(int n, char*s1, char*s2, char*s) { if (n<=0) return; int p = strchr(s2, s1[0]) - 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 () { char s1[100], s2[100]; while(scanf("%s%s", s1, s2) == 2) { int n = strlen(s1); char ans[100] = {0}; build(n, s1, s2, ans); ans[n] = '\0'; printf("%s\n", ans); } system("PAUSE"); return 0; }

 

转载于:https://www.cnblogs.com/tsubasa/archive/2012/12/05/2803989.html

相关资源:二叉树已知后序和中序遍历求前序遍历,C++代码
最新回复(0)