pta L2-006 树的遍历

Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例 本文实例讲述了Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作。分享给大家供大家参考,具体如下: 实现一个功能:     输入:一颗二叉树的先序和中序遍历     输出:后续遍历 思想: 先序遍历中,第一个元素是树根     在中序遍历中找到树根,左边的是左子树 右边的是右子树 Python代码: # -*- coding:utf-8 -*- def fromFMtoL( mid ): global las #全局后序遍历 global fir #先序遍历 root = fir[0] #取出当前树根 fir = fir[1:] #取出树根后 先序遍历把根拿出 立即下载

L2-006 树的遍历

给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。

输入格式:

输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。

输出格式:

在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。

输入样例:

7
2 3 1 5 7 6 4
1 2 3 4 5 6 7

输出样例:

4 1 6 3 5 7 2

思路:

该题目主要是根据树的后序遍历与中序遍历建树。其中后序遍历区间的最后一个元素为当前区间的根节点,用中序遍历可以在后序遍历中分别出左子树与右子树。再不断的向下递归缩区间即可

AC代码:
#include<bits/stdc++.h>
using namespace std;
struct node{
	int val;
	node *ln;
	node *rn; 
};
int n;
int num = 0;
const int maxn = 35;
int post[maxn];
int in[maxn];
node * creat(int pos,int poe,int ins,int ine){
	if(pos>poe)
		return NULL;
	node * root = new node;
	root->val = post[poe];
	int i;
	for(i = ins;i<=ine;i++){
		if(in[i]==post[poe])
			break;
	}
	int trleft = i - ins;  //trleft用于将左子树与右子树分开
	root->ln = creat(pos,pos+trleft-1,ins,i-1);
	root->rn = creat(pos+trleft,poe-1,i+1,ine);
	return root;
}
void bfs(node* root){
	queue<node*> q;
	q.push(root);
	while(!q.empty()){
		node* p = q.front();
		q.pop();
		num++;
		cout<<p->val;
		if(num<n) cout<<" ";
		if(p->ln!=NULL) q.push(p->ln);
		if(p->rn!=NULL) q.push(p->rn);
	}
}
int main(void){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>post[i];
	}
	for(int i=0;i<n;i++){
		cin>>in[i];
	}
	node * root = creat(0,n-1,0,n-1);
	bfs(root);
	return 0;
} 
保姆级教程:用STM32单片机实现国标交流充电桩的CP信号检测(附完整代码) 本文详细介绍了基于STM32单片机实现国标交流充电桩CP信号检测的全流程,包括硬件设计、软件架构和充电控制实现。通过分压电路设计、ADC配置和状态机逻辑,确保充电过程的安全与可靠性,适用于新能源汽车充电桩开发。附完整代码和调试技巧,助力开发者快速掌握关键技术。 阅读详情

相关推荐

从零开始:使用VMOS Pro和Xposed绕过APP环境检测的完整指南

本文详细解析了使用VMOS Pro和Xposed框架绕过APP环境检测的完整技术方案,包括模拟器检测、Root环境检测和Hook框架检测的对抗方法。通过实战案例和代码示例,展示了如何利用Xposed Hook技术拦截检测逻辑,特别针对360加固等保护技术提供了解决方案。

ee345的博客 735

7-4 树的遍历 (20 分)

7-4树的遍历(20分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。 输出格式: 在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。 输入样例: 7 2...

韩旭051的博客 6006

Win 11 Fastboot驱动的详细安装教程

Fastboot驱动的详细安装教程

水w的博客 1万+

PAT L2-006. 树的遍历

#include #include #include using namespace std; char pre[100],mid[100],post[100]; int s; int solo(int k,char *mid,char *post) { if(k return 0; pre[s++]=post[k-1]; char *p=strchr(mid,post[k-

Grit_ICPC的博客 2072

eLabRadio软件无线电虚实结合仿真开发平台简介

在使用仿真平台时,不要关闭设备或断开设备与PC机之间的网络连接,否则,仿真平台将无法正常工作。注:采用eNodeX设备认证方式,当出现“设备不存在”的报错时,请检查计算机IP是否和硬件设备IP处于同一网段,或者是否是先连接好网线,再开启硬件设备的。①此登录方式下,需要先建立软件与硬件的通信:在登录窗口点击【网络配置】,参照下图输入设备IP,服务器地址无需设置,设置完成后点击确认,此时登录界面无需设置账号密码;,拷贝到电脑上,使用管理员权限运行setup.exe,下一步直到安装完成,桌面会生成快捷方式。

weixin_55349105的博客 6319

一种基于频域滤波法消除干扰项与角谱法重构技术的数字全息显微台阶形貌测量实例分析

一种基于频域滤波法消除干扰项与角谱法重构技术的数字全息显微台阶形貌测量实例分析

简单光学 2034

【题解 | 二叉树】给定二叉树的后序遍历和中序遍历,求层序遍历结果

给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。

翼同学 2061

lammps建模(电解液)opls-aa力场的基本流程

lammps建模(电解液)opls-aa力场的基本流程

syj0922的博客 2134

二叉树的构建与前中后层序遍历(二叉树)

列出叶结点 对于给定的二叉树,本题要求你按从上到下、从左到右的顺序输出其所有叶节点。 输入格式: 首先第一行给出一个正整数N(≤10),为树中结点总数。树中的结点从 0 到N−1编号。随后N行,每行给出一个对应结点左右孩子的编号。如果某个孩子不存在,则在对应位置给出 "-"。编号间以 1 个空格分隔。 输出格式: 在一行中按规定顺序输出叶节点的编号。编号间以 1 个空格分隔,行...

纸短情长的博客 1505

手把手教你用ESP32-S3打造智能聊天机器人-立创实战派

本文将详细介绍如何利用立创ESP32-S3开发板,烧录小智AI程序,快速实现一个功能强大的聊天机器人。

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 9917

SAP_FI模块_固定资产期初导入全流程(含导入代码)

SAP 期初导入资产主数据以及金额相关的操作全流程记录,包含了批导程序的代码,以及错误记录

风沙的博客 1405

L2-006. 树的遍历-PAT团体程序设计天梯赛GPLT

L2-006. 树的遍历 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N( 输出格式: 在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。 输入样例: 7 2 3 1 5 7 6 4 1 2 3 4 5 6 7 输出样例: 4

柳婼 の blog 2791

「UG/NX」Block UI 曲线收集器CurveCollector

曲线收集器块用于选择一条或多条曲线,包括通过选择意图连接的末端曲线链。曲线选择意图用于此块,但它不支持“交点处停止”、“跟随圆角”、“中间链”和“特征内链”等规则选项。

何曾参静谧的博客 1090

PTA-L2-006 树的遍历 (25分)

PTA-L2-006 树的遍历 (25分) 传送门 给出后序遍历和中序遍历,给出层次遍历。 我们知道后序遍历:左右根 中序遍历:左根右 所以后序遍历的最后一个就是根节点,然后我们在中序遍历中找到这个根节点,把左子树和右子树区分开来,然后递归即可。 递归过程中我们把构建出来。 最后输出。 bfs输出即可。 代码部分: #include <bits/stdc++.h> #define mst(a, n) memset(a, n, sizeof(a)) using namespace std; con

qq_44624316的博客 349

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

PTA L2-006 树的遍历

PTA L2-006 树的遍历 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。 输出格式: 在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。 输入样例: 7 2 3 1 5 7...

旺崽的博客 3639

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【PTA L2-006】树的遍历

                                 L2-006 树的遍历 (25 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。 输出格式: 在一行中输出该树的层序遍历的序列...

Xylon的博客 900

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

PTA L2-006 树的遍历 (Python3)

【代码】PTA L2-006 树的遍历 (Python3)

2402_83394715的博客 246

PTA - L2-006 树的遍历

摘要:本文介绍了如何根据二叉树的后序和中序遍历序列重建二叉树,并输出其层序遍历结果。通过递归方法确定根节点(后序末元素)和左右子树划分(中序根节点位置),构建树结构。然后使用BFS队列实现层序遍历。算法核心是利用后序确定根节点,中序划分左右子树,递归构建整棵树后,用队列进行广度优先搜索完成层序输出。

qq_38599301的博客 792

PTA L2-006 树的遍历

题目 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。 输出格式: 在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。 输入样例: 7 2 3 1 5 7 6 4 1 2 3 4 ...

名字呢? 340

PTA L2-006树的遍历

这道题主要考察了树的遍历,如何从后序遍历与中序遍历的序列中重新建立一颗树,并且进行层序遍历。 重点在于如何建立这棵树,树是递归定义的,那么我们就递归建立树。 后序遍历的最后一个点即是当前树的根,再根据中序遍历序列,我们可以将树分成左右子树,递归重新得到树。 层序遍历则利用队列简单解决。 #include<iostream> #include<queue> using nam...

weixin_43737829的博客 286

PTA-L2-006 树的遍历

题目:给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。 输出格式: 在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。 输入样例: 7 2 3 1 5 7 6 4 1...

wys5的博客 209

PTA题解 L2-006 树的遍历(Python)

本文介绍了如何根据二叉树的后序和中序遍历结果,生成其层序遍历序列。解题思路分为三步:1)通过后序确定根节点,利用中序划分左右子树;2)递归构建二叉树结构;3)使用BFS实现层序遍历。关键点在于正确分割遍历序列和递归处理子树。示例代码展示了具体实现,包括输入处理、递归构建和结果输出。该方法高效可靠,适用于节点数N≤30的情况。最终输出格式要求严格,确保首尾无多余空格。

黑不拉几的小白兔和你一起努力 1072

C++:PTA L2-006 树的遍历

给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。

crescent_yue的博客 608

树的遍历(PTA L2-006)

#include<iostream> #include<vector> #include<queue> using namespace std; typedef struct BinTree { int data; BinTree* lchild; BinTree* rchild; }BinTree; vector<int> ...

qq_40634175的博客 656
上一篇: pta L2-005 集合相似度
下一篇: pta L2-007 家庭房产
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值