当前位置: 首页 > news >正文

【天梯赛练习】L2-035 完全二叉树的层序遍历

  • 后序遍历转层序遍历
  • 后序遍历:左——右——根
  • 层序遍历:数组形式存储的完全二叉树的顺序遍历序列其实就正好是其层序遍历序列。
    • 子树根若是 i d id id,左子树 i d ∗ 2 id*2 id2,右子树 2 ∗ i d + 1 2*id+1 2id+1

所以就是dfs递归找左右子树
注意后序遍历特点,最后才输出根。所以dfs中找完左右子树才记录根。

#include <bits/stdc++.h>
#define forr(i,l,r) for(int i=l;i<=r;i++)
#define reforr(i,l,r) for(int i=r;i>=l;i--)
#define int long long
#define pii pair<int,int>
#define endl '\n'
#define PI 3.14159265
using namespace std;
const int N=35;
int pst[N];
int d,n;
int res[N],cnt=0;
void dfs(int id){if(id>n)return;dfs(id<<1);//左子树dfs(id<<1|1);//右子树res[id]=pst[++cnt];//先到的是最左边的子树// cout<<id<<' '<<cnt<<' '<<res[id]<<endl;
}
void solve(){cin>>n;forr(i,1,n){cin>>pst[i];}dfs(1);forr(i,1,n){cout<<res[i]<<(i==n?'\n':' ');}
}

相关文章:

  • C++学习:六个月从基础到就业——面向对象编程:重载运算符(上)
  • Scala 入门指南
  • C++23 新预处理器指令详解:#elifdef、#elifndef 和 #warning
  • 数据结构与算法[零基础]---5.图
  • WIN11运行游戏时出现“ms-gamingoverlay”弹框的问题
  • package.json 中的那些版本数字前面的符号是什么意思?
  • WSL2-Ubuntu22.04安装URSim5.21.3
  • jvm调优工具arthas(阿尔萨斯)安装与使用---实践
  • 宫庭海:跨界融合与家国情怀的影视开拓者
  • 机器学习 Day11 决策树
  • Ubuntu 20.04.6编译安装COMFAST CF-AX90无线网卡驱动
  • OpenHarmony Camera开发指导(四):相机会话管理(ArkTS)
  • js day2
  • 十五种光电器件综合对比——《器件手册--光电器件》
  • FastAPI与SQLAlchemy数据库集成
  • 2025.04.17【Dendrogram】生信数据可视化:Dendrogram图表详解
  • 无人机姿态稳定与动态控制模块概述!
  • 第六章:6.3求一个3*3的整型矩阵对角线元素之和
  • 基于FreeRTOS和STM32的微波炉
  • Google C++ Style Guide
  • 从普通人经历中发现历史,王笛解读《线索与痕迹》
  • 四姑娘山一游客疑因高反身亡,镇卫生院:送到时已很严重
  • 习近平将出席中国—拉美和加勒比国家共同体论坛第四届部长级会议开幕式并发表重要讲话
  • 伊朗外长称正与美国进行“善意”的会谈
  • 新华时评:直播间里“家人”成“韭菜”,得好好管!
  • 李公明︱一周书记:浪漫主义为什么……仍然重要?