codevs 2010 求后序遍历

时间限制: 1 s空间限制: 64000 KB
题目描述 Description
输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。
输入描述 Input Description
共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。
输出描述 Output Description
仅一行,表示树的后序遍历序列。
样例输入 Sample Input
abdehicfg
dbheiafcg
样例输出 Sample Output
dhiebfgca
数据范围及提示 Data Size & Hint
输入长度不大于255。

复制代码
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<malloc.h>
 4 typedef char ElemType;
 5 typedef struct node 
 6 {    
 7     ElemType data;            //数据元素
 8     struct node *lchild;    //指向左孩子结点
 9     struct node *rchild;    //指向右孩子结点
10 } BTNode;
11 BTNode *CreateBT1(char *pre,char *in,int n)
12 /*pre存放先序序列,in存放中序序列,n为二叉树结点个数,
13 本算法执行后返回构造的二叉链的根结点指针*/
14 {
15     BTNode *s;
16     char *p;
17     int k;
18     if (n<=0) return NULL;
19     s=(BTNode *)malloc(sizeof(BTNode));        //创建二叉树结点*s
20     s->data=*pre;
21     for (p=in;p<in+n;p++)                    //在中序序列中找等于*ppos的位置k
22         if (*p==*pre)                        //pre指向根结点
23             break;                            //在in中找到后退出循环
24     k=p-in;                                    //确定根结点在in中的位置
25     s->lchild=CreateBT1(pre+1,in,k);        //递归构造左子树
26     s->rchild=CreateBT1(pre+k+1,p+1,n-k-1); //递归构造右子树
27     return s;
28 }
29 void PostOrder(BTNode *b) /*后序遍历递归算法*/
30 {
31     if (b!=NULL)  
32     {
33         PostOrder(b->lchild);
34         PostOrder(b->rchild);
35         printf("%c",b->data); /*访问根结点*/
36     }
37 }
38 int main(int argc, char *argv[])
39 {
40     freopen("2010.in","r",stdin);
41     char pre[260],in[260];
42     BTNode *root;
43     
44     scanf("%s%s",pre,in);
45     root=CreateBT1(pre,in,strlen(in));
46     PostOrder(root);
47     return 0;
48 }
复制代码

 

posted on   华山青竹  阅读(278)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
历史上的今天:
2014-07-17 分治法求最大最小值

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示