首页 > 其他分享 >L2-006 树的遍历

L2-006 树的遍历

时间:2024-03-31 09:11:06浏览次数:30  
标签:遍历 int tree ++ start L2 006 ssize

先建树,然后遍历数组。
这种方式比较消耗空间,适用于数据量小的情况,如果形成一条链,那将是致命的这个空间。

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int in[N], post[N];
vector<int> tree(N,-1); 
void build(int root, int start, int ed, int idx) {
	if (start > ed) return;
	int i;
	for (i = start; i <= ed; i++) {
		if (in[i] == post[root]) {
			break;
		}
	}
   tree[idx] = post[root];
	build(root - ed + i - 1, start, i - 1, 2 * idx);//左
	build(root - 1, i + 1, ed, 2 * idx + 1);//右
}
int main() {
	int ssize;
	cin >> ssize;
	for (int i = 0; i < ssize; i++) {
		cin >> post[i];
	}
	for (int i = 0; i < ssize; i++) {
		cin >> in[i];
	}
	build(ssize - 1, 0, ssize - 1, 1);
	int flag = 0;
	for (int i = 1; i < tree.size(); i++) {
		if (tree[i] != -1) {
           if(flag) cout << " ";
            cout << tree[i];
            flag++;
		}
	}
	return 0;
}

标签:遍历,int,tree,++,start,L2,006,ssize
From: https://www.cnblogs.com/chengyiyuki/p/18106375

相关文章

  • wsl2 代理功能
    原文链接:https://blog.csdn.net/weixin_62355896/article/details/1344583301打开或创建WSL配置文件(位于C:/User/%你的用户名/.wslconfig),并添加以下内容:[experimental]autoMemoryReclaim=gradualnetworkingMode=mirroreddnsTunneling=truefirewall=trueautoProxy=true......
  • 手把手教你做阅读理解题-初中中考阅读理解解题技巧006-Andy's South American travel
    PDF格式公众号回复关键字:ZKYD006阅读理解技巧,在帮助读者有效获取和理解文本信息方面发挥着重要作用,熟练掌握如下6个技巧,可快速突破阅读理解1预览文章结构在开始深入阅读之前,快速浏览文章的标题、段落开头和结尾,可以迅速把握文章的主题、大致内容和结构标题通常能概括文章......
  • WSL2配置代理
    新建proxy.sh文件,内容如下:#!/bin/shhostip=$(cat/etc/resolv.conf|grepnameserver|awk'{print$2}')wslip=$(hostname-I|awk'{print$1}')port=7890PROXY_HTTP="http://${hostip}:${port}"set_proxy(){exporthttp_proxy=&......
  • PTA L2-039 清点代码库
    上图转自新浪微博:“阿里代码库有几亿行代码,但其中有很多功能重复的代码,比如单单快排就被重写了几百遍。请设计一个程序,能够将代码库中所有功能重复的代码找出。各位大佬有啥想法,我当时就懵了,然后就挂了。。。”这里我们把问题简化一下:首先假设两个功能模块如果接受同样的输......
  • PTA L2-040 哲哲打游戏
    哲哲是一位硬核游戏玩家。最近一款名叫《达诺达诺》的新游戏刚刚上市,哲哲自然要快速攻略游戏,守护硬核游戏玩家的一切!为简化模型,我们不妨假设游戏有 N 个剧情点,通过游戏里不同的操作或选择可以从某个剧情点去往另外一个剧情点。此外,游戏还设置了一些存档,在某个剧情点可以将玩......
  • L2-046 天梯赛的赛场安排 团体程序设计天梯赛-练习集 c++ 易懂 模拟
    天梯赛使用OMS监考系统,需要将参赛队员安排到系统中的虚拟赛场里,并为每个赛场分配一位监考老师。每位监考老师需要联系自己赛场内队员对应的教练们,以便发放比赛账号。为了尽可能减少教练和监考的沟通负担,我们要求赛场的安排满足以下条件:每位监考老师负责的赛场里,队员人数不得......
  • 【洛谷】 P1006 [NOIP2008提高组]传纸条
    题目描述小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排坐成一个 m 行 n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,......
  • PTA-树的遍历(python实现)
    自己做题过程中的一些想法,做一个记录,方便以后查看,如果能给读者一些启发也是极好的。欢迎大家的批评指正和交流讨论。题目描述:给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是......
  • L2-047 锦标赛
    这题没做出来,查了一些博客,下面是我比较能接受的一种写法。读完题可以发现这是一个满二叉树,并且可以得到每场比赛失败者的信息(决赛是胜利者和失败者都可以得到)对于一场比赛,它的胜利者要么是左孩子中的胜利者,要么是右孩子中的胜利者,那我们就可以先假设是左孩子的胜利者,如果不行就......
  • Map集合的几种常见遍历方式
    keySet()for(Stringkey:map.keySet()){System.out.println(key);}values()for(Stringvalue:map.values()){System.out.println(value);}entrySet()for(Map.Entry<String,String>entry:map.entrySet()){Stringk=entry.getKey......