码迷,mamicode.com
首页 > 其他好文 > 详细

给出二叉树先序,中序遍历,求后序遍历

时间:2014-12-12 14:51:04      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   sp   for   

bubuko.com,布布扣
 1 #include <cstdio>
 2 #include <cstring>
 3 
 4 const int maxn = 100;
 5 
 6 int n;
 7 char a[maxn], b[maxn];
 8 
 9 void dfs(int la, int ra, int lb, int rb) {
10     if (la > ra)
11         return;
12     int md;
13     for (md = la; a[md] != b[lb]; md ++);
14     dfs(la, md - 1, lb + 1, lb + md - la);
15     dfs(md + 1, ra, lb + md - la + 1, rb);
16     putchar(b[lb]);
17 }
18 
19 int main() {
20     scanf("%s", b + 1);
21     scanf("%s", a + 1);
22     n = strlen(a + 1);
23     dfs(1, n, 1, n);
24     putchar(10);
25 }
代码君

方法提要:
a. 先由先序序列求得根结点;
b. 再由根结点在中序序列中
的位置,知:它之前访问的
结点为其左子树结点,它之
后访问的为其右子树结点;
c. 递归应用a. b. 两条。      

给出二叉树先序,中序遍历,求后序遍历

标签:style   blog   http   io   ar   color   os   sp   for   

原文地址:http://www.cnblogs.com/usedrosee/p/4159526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!