sdut oj——1291 数据结构上机测试4.1:二叉树的遍历与应用1
数据结构上机测试4.1:二叉树的遍历与应用1
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
输入二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列。
输入
第一行输入二叉树的先序遍历序列;
第二行输入二叉树的中序遍历序列。
第二行输入二叉树的中序遍历序列。
输出
输出该二叉树的后序遍历序列。
示例输入
ABDCEF BDAECF
示例输出
DBEFCA
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct node { char ch; struct node *lch,*rch; }*A,M; int find(char st,char a[],int l,int r) { int k=l; while(a[k]!=st && k<=r) k++; return(k); } A creat(char pre[],char mid[],int n) { A t; int k; if(n<=0) return NULL; else { k=find(pre[0],mid,0,n); t=(A)malloc(sizeof(M)); t->ch=pre[0]; t->lch=creat(pre+1,mid,k); t->rch=creat(pre+k+1,mid+k+1,n-k-1); } return(t); } void post(A f) { if(f) { post(f->lch); post(f->rch); printf("%c",f->ch); } } int main() { A f; char pre[1002],mid[1002]; scanf("%s%s",pre,mid); int len=strlen(pre); f=creat(pre,mid,len); post(f); printf("\n"); return 0; }

浙公网安备 33010602011771号