1291 数据结构上机测试4.1:二叉树的遍历与应用1
2014-02-17 23:45
162 查看
数据结构上机测试4.1:二叉树的遍历与应用1
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
输入二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列。
输入
第一行输入二叉树的先序遍历序列;第二行输入二叉树的中序遍历序列。
输出
输出该二叉树的后序遍历序列。
示例输入
ABDCEF BDAECF
示例输出
DBEFCA
#include <stdio.h> #include <string.h> #include <stdlib.h> struct node { char data; struct node *l,*r; }; struct node *build (char *a,char *b,int n) { char *new;//指针 struct node *ptr;//临时结构体 if (n<=0) return NULL; int k=0; ptr =(struct node *)malloc(sizeof (struct node )); ptr->data=*a;//ptr->data=a数组的首个元素,因为a为先序,so 第一个元素是整个二叉树的根结点 for (new=&b[0]; new<b+n; new++) //new=b[0]的地址 { if (*new==*a) break; } k=new-b;//k表示上个for循环循环的次数,也就是整个二叉树的左子树的元素个数 ptr ->l =build (a+1,b,k); //建立左子树,a+1表示a数组去掉第一个元素后形成的新的数组a ptr ->r =build (a+1+k,new+1,n-1-k); //建立右子树, return ptr; } void last (struct node *t) { if (t==NULL) return ; last (t->l);//后序遍历左子树 last (t->r);//后序遍历右子树 printf ("%c",t->data);//输出结点 } int main () { int n; char a[100],b[100]; scanf ("%s%s",a,b);//a表示先序,b表示中序 n=strlen (a); struct node *tree; tree=build (a,b,n);//生成二叉树 last (tree);//后序遍历 printf ("\n"); return 0; }
#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> using namespace std; char a[10000],b[10000]; struct node { char data; struct node *l,*r; }; struct node *build (char *a,char *b,int n) { struct node *t;int i; char x = a[0]; if (n <= 0) return NULL; t = (struct node *)malloc(sizeof (struct node)); t -> data = x; for (i = 0; i < n;i++) { if (b[i] == x) break; } t -> l = build ( a + 1, b, i); t -> r = build (a + 1 + i,b + 1 + i,n - 1 - i); return t; } void last (struct node *t) { if ( t == NULL ) return ; last (t -> l); last (t -> r); printf ("%c",t->data); } int main() { scanf ("%s%s",a,b); int len =strlen (a); struct node *tree; tree = build (a,b,len); last (tree); printf ("\n"); return 0; }
相关文章推荐
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1: 4000 二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1
- SDUTOJ 1291 数据结构上机测试4.1:二叉树的遍历与应用1
- 【1291】数据结构上机测试4.1:二叉树的遍历与应用1 SDUTOJ
- 【1291】数据结构上机测试4.1:二叉树的遍历与应用1 SDUTOJ
- 数据结构上机测试4.1:二叉树的遍历与应用1 oj
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 1291 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 1489 求二叉树的先序遍历 1291 数据结构上机测试4.1:二叉树的遍历与应用1【二叉树遍历顺序转换】
- C语言 数据结构之二叉树 数据结构上机测试4.1:二叉树的遍历与应用1
- SDUT 1291数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1【根据二叉树的前序序列和中序序列求后序序列方法1,2】
- 数据结构上机测试4.1:二叉树的遍历与应用
- 数据结构上机测试4.1:二叉树的遍历与应用1