
二叉树
文章平均质量分 57
Brightess
毕业于湖南城市学院
目前在某游戏大厂搬砖(
展开
-
力扣周赛 313 反转二叉树的奇数层(dfs镜像遍历 or bfs提取层节点)
dfs镜像遍历 or bfs提取层节点原创 2022-10-27 15:49:42 · 682 阅读 · 0 评论 -
二叉树专题--P1030 [NOIP2001 普及组] 求先序排列
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度$ \le 8$)。222行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。111行,表示一棵二叉树的先序。样例输出 #1提示【题目来源】NOIP 2001 普及组第三题......原创 2022-06-29 01:28:37 · 192 阅读 · 0 评论 -
二叉树专题--【深基16.例7】普通二叉树(简化版)(multiset 求前驱 后继 哨兵法)
您需要写一种数据结构,来维护一些数( 都是 10910^9109 以内的数字)的集合,最开始时集合是空的。其中需要提供以下操作,操作次数 qqq 不超过 10410^4104:样例输出 #1学到一个黑科技,当使用 求某个值的 前驱 / 后继 时,我们可以先往 中插入一个正无穷和一个负无穷两个哨兵,之后,找 前驱 / 后继 就无需特殊判断了。注意,本题对于 前驱 / 后继 的定义是:小于 / 大于 ,且 最大 / 最小 的数。具体代码片段如下:......原创 2022-06-29 01:01:24 · 263 阅读 · 0 评论 -
二叉树专题--洛谷 P3884 [JLOI2009]二叉树问题(dfs求二叉树深度 bfs求二叉树宽度 dijkstra求最短路)
如下图所示的一棵二叉树的深度、宽度及结点间距离分别为:其中宽度表示二叉树上同一层最多的结点个数。给定一颗以 1 号结点为根的二叉树,请求出其深度、宽度和两个指定节点 x,yx, yx,y 之间的距离。第一行是一个整数,表示树的结点个数 nnn。接下来 n−1n - 1n−1 行,每行两个整数 u,vu, vu,v,表示树上存在一条连接 u,vu, vu,v 的边。最后一行有两个整数 x,yx, yx,y,表示求 x,yx, yx,y 之间的距离。输入三行,每行一个整数,依次表示二叉树的深度、宽度和 x,原创 2022-06-28 19:15:03 · 599 阅读 · 0 评论 -
二叉树专题--洛谷 P1229 遍历问题(乘法原理 已知前、后序遍历求中序遍历个数)
我们都很熟悉二叉树的前序、中序、后序遍历,在数据结构中常提出这样的问题:已知一棵二叉树的前序和中序遍历,求它的后序遍历,相应的,已知一棵二叉树的后序遍历和中序遍历序列你也能求出它的前序遍历。然而给定一棵二叉树的前序和后序遍历,你却不能确定其中序遍历序列,考虑如下图中的几棵二叉树:所有这些二叉树都有着相同的前序遍历和后序遍历,但中序遍历却不相同。输A数据共两行,第一行表示该二叉树的前序遍历结果s1,第二行表示该二叉树的后序遍历结果s2。输出可能的中序遍历序列的总数,结果不超过长整型数。样例输出 #1提示原创 2022-06-28 10:43:31 · 363 阅读 · 0 评论 -
二叉树专题--AcWing 3384. 二叉树遍历(已知先序遍历 边建树 边输出中序遍历)
边建树 边输出原创 2022-06-28 00:57:51 · 148 阅读 · 0 评论 -
二叉树专题--AcWing 3540. 二叉搜索树建树(实用板子 构建二叉搜索树 并输出前、中、后序遍历)
输入一系列整数,利用所给数据建立一个二叉搜索树,并输出其前序、中序和后序遍历序列。本题代码可以用做一个实用的板子。我习惯用 结构体数组 存树:按照 二叉搜索树的定义,递归构建一棵树,下面是 函数:接下来就是前、中、后序遍历的套路代码了:前序 函数:(根 左 右)中序 函数:(左 根 右)后序 函数:(左 右 根)......原创 2022-06-27 21:21:48 · 262 阅读 · 0 评论 -
二叉树专题--AcWing 47. 二叉树中和为某一值的路径(前序遍历)
输入一棵二叉树和一个整数,打印出 二叉树中结点值的和 为 输入整数 的 所有路径。从 树的根结点 开始 往下一直到叶结点 所经过的结点 形成一条路径。保证树中结点值 均不小于 。从上往下遍历,当遍历到叶子节点的时候,判断当前路径权值和是否等于目标值。若是,则将答案记录。若不是,则不进行操作......原创 2022-06-27 16:22:20 · 163 阅读 · 0 评论 -
二叉树专题--AcWing 1589. 构建二叉搜索树
规定 号节点为根节点,题目给出 各个编号节点之间的父子关系,以及 一系列不同的权值。依据 二叉搜索树的定义,将给出的不同权值 插入并构建出二叉搜索树。要求输出构建出的 二叉搜索树的层序遍历 ( 序)我们知道,一棵二叉搜索树的 中序遍历一定是有序的,因此,我们肯定先要将题中 给定的一系列权值先排好序。排好序后,按照树的中序遍历的顺序 将所有权值 填入树中 即可。最后,输出其宽度优先遍历的序列 即可。大体思路就是这样子,下面谈谈 代码细节。对于 二叉搜索树中每个节点,我更习惯采用类似于线段树存储节点的方式,用原创 2022-06-27 15:40:20 · 190 阅读 · 0 评论 -
二叉树专题--AcWing 19. 二叉树的下一个节点(找树中节点的后继)
求二叉树中给定节点的后继。(模拟) O(h)分情况讨论即可,如下图所示:原创 2022-06-27 00:03:41 · 195 阅读 · 0 评论 -
二叉树专题--AcWing 18. 重建二叉树(利用前、中序遍历,构建二叉树)
思路和代码均类似与上一题 AcWing 1497. 树的遍历,此处就不做过多赘述了。原创 2022-06-26 21:15:23 · 118 阅读 · 0 评论 -
二叉树专题--AcWing 1497. 树的遍历(利用后、中序遍历,构建二叉树)
本题十分重要,不论在算法竞赛,或是笔试面试中,都经常出现。告诉我们一棵二叉树的 中序遍历 和 后序遍历,要我们输出其 层序遍历(即 序)先利用二叉树的 中序遍历和后序遍历,将二叉树建立,之后 利用 输出其层序遍历的顺序。我们模拟一下样例的建树过程:根据题中的 ,我们得知给定二叉树的中、后序遍历:首先,对于后序遍历来说,根节点肯定是最后一个点,因此 “” 一定是根节点。之后,我们在中序遍历中找到 “” 号点,在中序遍历中,我们一定是在 “” 号点左边遍历左子树(三个点:),在其右边遍历右子树(三个点:)。原创 2022-06-26 12:19:08 · 296 阅读 · 0 评论