数据结构实验之求二叉树后序遍历和层次遍历
2016-08-09 09:48
246 查看
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2137&cid=1796
已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历。
输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据。每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的先序遍历序列,第二个字符串表示二叉树的中序遍历序列。
每组第一行输出二叉树的后序遍历序列,第二行输出二叉树的层次遍历序列
数据结构实验之求二叉树后序遍历和层次遍历
Time Limit: 1000MS Memory limit: 65536K
题目描述
已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历。
输入
输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据。每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的先序遍历序列,第二个字符串表示二叉树的中序遍历序列。
输出
每组第一行输出二叉树的后序遍历序列,第二行输出二叉树的层次遍历序列
示例输入
2 abdegcf dbgeafc xnliu lnixu
示例输出
dgebfca abcdefg linux xnuli
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<iostream> #include<queue> using namespace std; typedef char type; typedef struct tnode { struct tnode *lc; struct tnode *rc; type data; }tnode,*tree; tree creat(char *bef,char *mid,int len) { tree T; if(len<=0) return NULL; T=(tree)malloc(sizeof(tnode)); char *p; T->data=*bef; for(p=mid;p!=NULL;p++) if(*p==*bef) break; int llen=p-mid; T->lc=creat(bef+1,mid,llen); T->rc=creat(bef+llen+1,p+1,len-llen-1); return T; } void hinorder(tree &T)//后序输出 { if(T) { hinorder(T->lc); hinorder(T->rc); printf("%c",T->data); } } void levorder(tree &T)//层序输出 { queue<tree>S; if(T) { printf("%c",T->data); S.push(T); } while(!S.empty()) { T=S.front(); S.pop(); if(T->lc) { printf("%c",T->lc->data); S.push(T->lc); } if(T->rc) { printf("%c",T->rc->data); S.push(T->rc); } } } int main() { tree T; char befs[60],mids[60]; int t,len; scanf("%d",&t); while(t--) { scanf("%s\n%s",befs,mids); len=strlen(befs); T=creat(befs,mids,len); hinorder(T); printf("\n"); levorder(T); printf("\n"); } return 0; }
相关文章推荐
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历(简单版)
- 数据结构实验之求二叉树后序遍历和层次遍历