poj - 2255 Tree Recovery

本文介绍了一种二叉树重建算法的实现方法,并提供了一段C语言代码示例。该算法通过先序遍历和中序遍历来重建二叉树结构。

今天只水了一道二叉树重建,本来白书上是有代码的,可惜我的白书锁教室了,只好自己想了一下,还算可以。

 1 #include <stdio.h>
 2 #include <string.h>
 3 int cnt;
 4 char c[30];
 5 void build(char * s,char * t,int l)
 6 {
 7     if(l == 1)
 8     {c[cnt++] = *s; return ;}
 9     int n = strchr(t,s[0]) - t;
10     if(n) build(s+1,t,n);
11     if(l-n-1)
12         build(s+n+1,t+n+1,l-n-1);
13     c[cnt++] = *s;
14 }
15 int main()
16 {
17     char a[30],b[30];
18     int l,i;
19     while(~scanf("%s%s",a,b))
20     {
21         cnt = 0;
22         l = strlen(a);
23         build(a,b,l);
24         for(i = 0; i < l; i++)
25             printf("%c",c[i]);
26         printf("\n");
27     }
28     return 0;
29 }

 

转载于:https://www.cnblogs.com/lzxskjo/archive/2012/07/15/2592788.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值