天梯赛 L2-3 完全二叉树的层序遍历 文章目录 题目描述 输入 输出 数据范围 样例 想法 实现 题目描述 一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。
#include<bits/stdc++.h> using namespace std; int n,a[35],b[35]; int cnt=0; void dfs(int i) { if(i>n)return; dfs(i*2); dfs(i*2+1); b[i]=a[cnt++]; } int main() { cin >> n ; for(int i=0;i<n;i++) { cin >> a[i] ; } dfs(1); for(int i=1;i<n;...
思路:对于给定的后序遍历序列,可以知道最后一个元素是树的根节点,可以使用递归建树。 1.若当前结点的右子树不为空则继续将右子树遍历,若右子树为空则判断当前结点是否存在右儿子,右儿子的编号为this.num*2+1,如果右儿子的编号小于等于结点的数量n则表示存在右儿子,在此新建结点。 2.若右子树不满足条件则考虑左...
back_order[N];intn;introot;//记录树根vector<int>ans;//层序遍历答案map<int,int>mp;//记录该结点所在层数intk;//层数intdeep;//树的深度vector<int>R,L;//记录左右视图intbuildtree(intla,intra,intlb,intrb){if(la>ra||lb>rb)return
while (!vis[x]) { // 向上回溯,直到找到遍历过的点为止 vis[x] = 1; ans += 2; x = fa[x]; // 路上加入访问标记 } return ans; } vector<int> G[N]; int d[N]; void dfs(int fa, int dep = 0) { // 遍历树,标记深度 ...
【练习时间】2021/4/5 【题目名称】L2-035 完全二叉树的层序遍历 (25 分) 一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是完美二叉树。对于深度为 D 的,有 N 个结点的二叉树,若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点,这样的树就是完全二叉树。 给定一棵完全二叉树的...
2.字符串常用操作 把字符串想象成一个由单一字符组成的数组,python的字符串同样支持索引,切片和遍历等 遍历字符也很简单,相当于遍历字符串的每个字符。...深入了解Python字符串对象的实现 本文介绍了 python 内部是如何管理字符串对象,以及字符串查找操作是如何实现的。 PyStringObject 结构体 Python 中的字符串...
用数组模拟后序遍历序列,就是模拟节点编号的访问次序。所以用题目给的后序遍历数据依次对应模拟的访问编号,就可以还原这棵n个节点的完全二叉树上每个节点编号对应的数据(仅限完全二叉树:最后一层上的结点都集中在该层最左边的若干位置上,其他层都是满节点,则此二叉树称为完全二叉树)。
思路: 水题,略过 Tip: 满二叉树和完全二叉树的性质 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
输入在第一行中给出正整数N(≤),即树中结点个数。第二行给出后序遍历序列,为N 个不超过 100 的正整数。同一行中所有数字都以空格分隔。 输出格式: 在一行中输出该树的层序遍历序列。所有数字都以 1 个空格分隔,行首尾不得有多余空格。 输入样例: ...