您的位置:首页 > 理论基础 > 数据结构算法

数据结构上机测试4.1:二叉树的遍历与应用1

2014-02-17 23:55 162 查看

数据结构上机测试4.1:二叉树的遍历与应用1

Time Limit: 1000MS Memory limit: 65536K

题目描述

输入二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列。

输入

第一行输入二叉树的先序遍历序列;第二行输入二叉树的中序遍历序列。

输出

输出该二叉树的后序遍历序列。

示例输入

ABDCEF
BDAECF

示例输出

DBEFCA
可以把这个问题看做是模板性问题,已知先序和中序求后序,由定义可知,先序的第一个数字即是根节点,可以利用此特性在中序中查找这个根节点,并把中序分成左子树和右子树两个部分,再经过不断的递归调用,找到数,输出。
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;struct jied{char date;struct jied *lchild,*rchild;};void jianshu(char *sz,char *sx,int len){if(len == 0)return ;jied* T = new jied;T -> date = *sx;int i = 0;for(; i<len; i++){if(sz[i] == *sx)break;}jianshu(sz,sx+1,i);jianshu(sz+i+1,sx+i+1,len-(i+1));printf("%c",T->date);return ;}int main(int argc,char* argv[]){int len;char sz[100],sx[100];gets(sx);gets(sz);len = strlen(sz);jianshu(sz,sx,len);printf("\n");return 0;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: