数据结构实验之求二叉树后序遍历和层次遍历
来源:互联网 发布:淘宝电影 编辑:程序博客网 时间:2024/04/28 11:44
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2137&cid=1796
数据结构实验之求二叉树后序遍历和层次遍历
Time Limit: 1000MS Memory limit: 65536K
题目描述
已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历。
输入
输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据。每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的先序遍历序列,第二个字符串表示二叉树的中序遍历序列。
输出
每组第一行输出二叉树的后序遍历序列,第二行输出二叉树的层次遍历序列
示例输入
2abdegcfdbgeafcxnliulnixu
示例输出
dgebfcaabcdefglinuxxnuli
#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;}
0 0
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- let关键字
- Asp.Identity2.1.0的修改
- 工作小问题积累
- 矩阵乘法证明
- Android入门:Activity四种启动模式
- 数据结构实验之求二叉树后序遍历和层次遍历
- 利用注解实现spring基本配置详解
- Mongodb亿级数据量的性能测试
- 使用Webview加载html网页
- iOS中正则表达式的使用
- java中常用单词
- 浅谈HTML-DOM
- Java解惑3
- git merge 和 git rebase 小结