SDUT_2137_数据结构实验之求二叉树后序遍历和层次遍历
来源:互联网 发布:linux下链接数据库 编辑:程序博客网 时间:2024/05/22 01:36
Problem Description
已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历和层序遍历。
Input
输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据。每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的先序遍历序列,第二个字符串表示二叉树的中序遍历序列。
Output
每组第一行输出二叉树的后序遍历序列,第二行输出二叉树的层次遍历序列。
Example Input
2
abdegcf
dbgeafc
xnliu
lnixu
Example Output
dgebfca
abcdefg
linux
xnuli
代码
#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>using namespace std;char pre[55],in[55]; struct Node{ int data; struct Node *lchild; struct Node *rchild;};//返回构造的二叉树的根Node *CreatTree(char *pre,char *in,int n){ Node *p; char *q; int k; if(n <= 0) return NULL; p = (Node *)malloc(sizeof(Node)); p->data = *pre;//i for(q=in;q<in+n;q++) { if(*q == *pre) break; } k = q-in; p->lchild = CreatTree(pre+1,in,k); p->rchild = CreatTree(pre+k+1,q+1,n-k-1); return p;}//后序遍历void PostOrder(Node *b){ if(b!=NULL) { PostOrder(b->lchild); PostOrder(b->rchild); printf("%c",b->data); }}//层次遍历(用队列完成)void levelOrder(Node *b){ queue<struct Node *> Q; Q.push(b); //现将节点入队 while(!Q.empty()) //队列不为空时循环 { Node *t; t = Q.front(); //队头元素 if(t) { Q.push(t->lchild); //向队列中添加元素t->lchild(顺序的将树的节点一个个入队) Q.push(t->rchild); //向队列中添加元素t->rchild printf("%c",t->data); //输出当前的节点 } Q.pop(); //从队列中取出并删除元素 }}int main(){ int T; int len; scanf("%d",&T); while(T--) { scanf("%s",pre); len = strlen(pre); scanf("%s",in); Node *b = CreatTree(pre,in,len); //后序遍历 PostOrder(b); printf("\n"); //层序遍历 levelOrder(b); printf("\n"); } return 0;}
阅读全文
0 0
- SDUT_2137_数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 数据结构实验之求二叉树后序遍历和层次遍历
- 英文段落每行末尾加连字符
- jQuery的deferred对象详解
- 2.1.4 实现简单图片浏览
- backup dccnn
- 【NOIP2017提高A组冲刺11.2】失格(乱搞)
- SDUT_2137_数据结构实验之求二叉树后序遍历和层次遍历
- python网络爬虫系列教程——PhantomJS包应用全解
- print 调bug神器 图像,npy,这些数据,一定要注意位深,数据类型这些
- MSP430串口接收控制LED
- 背包问题(乘船)
- ubuntu16.04安装GPU版SSD
- 3.读书笔记收获不止Oracle之 物理体系
- AJAX学习
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)