GPTL—练习集—006树的遍历
#include<bits/stdc++.h>
using namespace std; typedef int daTp;//datatype
typedef struct BTNode *position;
typedef position BTree;
const int MAXN=;
struct BTNode
{
daTp data;
position lChild,rChild;
};
BTree build(daTp in[],daTp post[],int n)//利用中序和后序遍历生成二叉树
{
BTree T=NULL;
if(n)
{
T=new BTNode;
T->data=post[n-];
int ln=,rn=;
bool flag=true;
daTp lin[MAXN],lpost[MAXN],rin[MAXN],rpost[MAXN];
for(int i=;i<n;i++)
{
if(in[i]==T->data)
{
flag=false;
continue;
}
if(flag) lin[ln++]=in[i];
else rin[rn++]=in[i];
}
for(int i=,k=;i<n;i++)
{
if(i<ln) lpost[i]=post[i];
else rpost[k++]=post[i];
}
T->lChild=build(lin,lpost,ln);
T->rChild=build(rin,rpost,rn);
}
return T;
}
void levelOrder(BTree T)//层序遍历
{
if(!T) return;
queue<BTree>qu;
qu.push(T);
BTree tr=T;
while(!qu.empty())
{
tr=qu.front();
qu.pop();
cout<<(tr==T?"":" ")<<tr->data;
if(tr->lChild) qu.push(tr->lChild);
if(tr->rChild) qu.push(tr->rChild);
}
}
int main()
{
int n;
daTp inOd[MAXN],postOd[MAXN];
while(cin>>n)
{
for(int i=;i<n;i++)
cin>>postOd[i];
for(int i=;i<n;i++)
cin>>inOd[i];
BTree T=build(inOd,postOd,n);
levelOrder(T);
cout<<endl;
}
return ;
}
GPTL—练习集—006树的遍历的更多相关文章
- 团体程序设计天梯赛-练习集L2-006. 树的遍历
L2-006. 树的遍历 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历 ...
- PAT 甲级 1021 Deepest Root (并查集,树的遍历)
1021. Deepest Root (25) 时间限制 1500 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A graph ...
- PTA L2-006 树的遍历-二叉树的后序遍历+中序遍历,输出层序遍历 团体程序设计天梯赛-练习集
L2-006 树的遍历(25 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤),是二叉树中结点的 ...
- javascript实现数据结构: 树和二叉树的应用--最优二叉树(赫夫曼树),回溯法与树的遍历--求集合幂集及八皇后问题
赫夫曼树及其应用 赫夫曼(Huffman)树又称最优树,是一类带权路径长度最短的树,有着广泛的应用. 最优二叉树(Huffman树) 1 基本概念 ① 结点路径:从树中一个结点到另一个结点的之间的分支 ...
- 用python讲解数据结构之树的遍历
树的结构 树(tree)是一种抽象数据类型或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合 它具有以下的特点: ①每个节点有零个或多个子节点: ②没有父节点的节点称为根节点: ③ ...
- 数据结构--树(遍历,红黑,B树)
平时接触树还比较少,写一篇博文来积累一下树的相关知识. 很早之前在数据结构里面学的树的遍历. 前序遍历:根节点->左子树->右子树 中序遍历:左子树->根节点->右子树 后序遍 ...
- YTU 3023: 树的遍历
原文链接:https://www.dreamwings.cn/ytu3023/2617.html 3023: 树的遍历 时间限制: 1 Sec 内存限制: 128 MB 提交: 3 解决: 2 题 ...
- UVA1455 - Kingdom(并查集 + 线段树)
UVA1455 - Kingdom(并查集 + 线段树) 题目链接 题目大意:一个平面内,给你n个整数点,两种类型的操作:road x y 把city x 和city y连接起来,line fnum ...
- leetcode404-----简单的树的遍历
Find the sum of all left leaves in a given binary tree. Example: 3 / \ 9 20 / \ 15 7 There are two l ...
随机推荐
- C语言数据结构队列
#include<stdio.h>#include<stdlib.h>struct Node { int data; Node *next;};struct Queue { ...
- TP字段加一操作
经常有需要对某个数据表的计数字段进行加减操作,我们来看下在ThinkPHP中的具体使用办法.最简单的,使用下面方法对score自动加1: M('User')->where('id=5')-> ...
- 条件变量 condition_variable wait_for
wait_for(阻塞当前线程,直到条件变量被唤醒,或到指定时限时长后) #include <iostream> #include <atomic> #include < ...
- ES6新特性箭头函数和常用function()对比
// 无参 var fn1 = function() {} var fn1 = () => {} // 单个参数 var fn2 = function(a) {} var fn2 = a =&g ...
- threejs创建地球
上个月底,在朋友圈看到一个号称“这可能是地球上最美的h5”的分享,点进入后发现这个h5还很别致,思考了一会,决定要不高仿一个? 到今天为止,高仿基本完成, 线上地址 github地址 除了手机端的me ...
- matlab将数据读取和写入txt文档
原文链接 matlab中打开文件 fid = fopen(文件名,‘打开方式’): 说明:fid用于存储文件句柄值,如果fid>0,这说明文件打开成功. 另外,在这些字符串后添加一个“t”,如‘ ...
- work of 12/30/2015
part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 merge UI 与reader 6 丰富re ...
- Nginx知多少系列之(七)负载均衡策略
目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.负载均衡策略 8.加权轮询(round rob ...
- Windows安装Tesseract-OCR 4.00并配置环境变量
一.前言 Tesseract-OCR 是一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎.与Microsoft O ...
- Mark down 使用总结
Markdown语法 Markdown是一种纯文本.轻量级的标记语言,通过简单的标记,就可以使文本具有一定的格式,操作简单.使用广泛,常见的比如github上的README.md . Markdown ...