数据结构上机测试4.1:二叉树的遍历与应用1
2017-02-21 19:13
351 查看
Problem Description
输入二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列。
Input
第一行输入二叉树的先序遍历序列;
第二行输入二叉树的中序遍历序列。
Output
输出该二叉树的后序遍历序列。
Example Input
ABDCEF
BDAECF
Example Output
DBEFCA
先序遍历的第一个为根节点,再在中序遍历中找到根节点的位置,根节点左边为左子树,右边为右子树,之后在左右子树重复之前的操作。
4000
输入二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列。
Input
第一行输入二叉树的先序遍历序列;
第二行输入二叉树的中序遍历序列。
Output
输出该二叉树的后序遍历序列。
Example Input
ABDCEF
BDAECF
Example Output
DBEFCA
先序遍历的第一个为根节点,再在中序遍历中找到根节点的位置,根节点左边为左子树,右边为右子树,之后在左右子树重复之前的操作。
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct node { char date; struct node *l,*r; }tree; tree *creat(int len,char s[60],char h[60]) { int i; tree *t; if(len<=0) return NULL; t=(tree *)malloc(sizeof(tree)); t->date=s[0]; for(i=0;i<len;i++) { if(h[i]==s[0]) break; } t->l=creat(i,s+1,h); t->r=creat(len-i-1,s+i+1,h+i+1); return t; } void show(tree *root) { if(root) { show(root->l); show(root->r); printf("%c",root->date ); } } int main() { tree *root; char s[60],h[60]; int len; scanf("%s %s",s,h); len=strlen(h); root=creat(len,s,h); show(root); printf("\n"); return 0; }
4000
相关文章推荐
- 【1291】数据结构上机测试4.1:二叉树的遍历与应用1 SDUTOJ
- 数据结构上机测试4.1:二叉树的遍历与应用1 (*详解
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1
- sdutacm-数据结构上机测试4.1:二叉树的遍历与应用1
- 1489 求二叉树的先序遍历 1291 数据结构上机测试4.1:二叉树的遍历与应用1【二叉树遍历顺序转换】
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1【根据二叉树的前序序列和中序序列求后序序列方法1,2】
- 数据结构上机测试4.1:二叉树的遍历与应用
- 数据结构上机测试4.1:二叉树的遍历与应用1
- C语言 数据结构之二叉树 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1 oj
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 【1291】数据结构上机测试4.1:二叉树的遍历与应用1 SDUTOJ
- SDUTOJ 1291 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1
- 数据结构上机测试4.1:二叉树的遍历与应用1