CSP-j初赛及其试题_附件:树
2025-08-04 09:00:49
发布于:河北
比赛中常见的事二叉树,所以我们义二叉树为例
名词解释:
子节点:树的每个节(o)点都可以分裂节点,分裂的节点就被叫做o的子节点。
父节点:假如你是一个被某个节点分裂出来的节点,那么那个被分裂的节点,就是你的父节点。
兄弟:每个节点都能分裂出2的节点,那么那两的节点,就互为兄弟节点。
深度:从根节点到当前节点的边数,且是唯一的。
高度:所有节点深的的最大值。
树由节点构成,二叉树每个节点都有至多2个子节点
比如:
树中最上面的节点叫根节点,他没有父节点
在最下面,没有子节点的节点被称为叶子结点
二叉树的分类
满二叉树/完美二叉树:所有节点除了叶子节点外都有两个子节点,每个节点除了根节点都有自己的兄弟节点。
完全二叉树:除了叶子节点每一个节点都至少有左孩子,不一定有右孩子。
对于一棵满二叉树,其深度为k,则结点数为。
对于一颗二叉树,一颗节点的编号为你,则其左孩子的编号为2n,右孩子为2n+1。
树的遍历
树的遍历分为前序、中序、后续和层序
记住名词
前序 根左右
中序 左根右
后序 左右根
接下来我来一一解释:
前序遍利:
我们已知根左右,就是先找到根,再找到孩子,其中先找到左节点,在找到右节点
中序遍利:
我们已知左根右,就是先找到一直延伸的左孩子,再找到孩子的父节点,然后找到右节点。
后序遍利:
我们已知根左右,就是先找到一直延伸的兄弟节点,先遍历其左节点,然后是右节点,最后找到他们的父节点
层序遍历:
按照层序从左到右遍利

用这张图来举例
前序:ABDECF
中序:DBEAFC
后序:DEBFCA
层序:ABCDEF
经典题目
已知前序/后序和中序,求后序/前序(要注意,只有前序和后序无法求中序,有多种可能)
举个栗子:
正序:ABDHECFG
中序:HDBEACFG
求后序。
解题方法主要在中序:
已知正序的第一个是根节点,则A为根,那么现在划掉A
正序:BDHECFG
中序:HDBEACFG
中序跟在中间,可以将数分成两个部分,又因为左根右,所以A的左孩子在左部分,右孩子在右部分
咱们先处理左部分,因为左右根,左边的根是B
正序:DHECF
中序:HDBEACFG
接着处理B的左边D
正序:HECFG
中序:HDBEACFG
D只有左边H
H无法处理
那就处理B的右边,B的右边只有E
E无法处理,就处理A的右边
按照这个方法,就能推出:
再根据前面的方法,得到答案
【HDEBGFA】
听懂掌声
这里空空如也
有帮助,赞一个