- 马昱宸 的博客
tree(树)
- @ 2026-4-12 14:29:25
树是一种具有分支和层次特性的非线性数据结构,常用来表示有层级关系的数据集合,比如家谱、文件系统等。它形似倒挂的树,根在上、叶在下。
什么是树?
树是由 n(n ≥ 0)个节点 组成的有限集合:
当 n = 0 时,称为空树; 当 n > 0 时,有且仅有一个根节点(root),其余节点可分为若干个互不相交的子集,每个子集本身又是一棵树,称为根的子树。 树的性质 唯一父节点:除根节点外,每个节点有且仅有一个父节点。 子树不相交:各子树之间互不相交,不能有重叠。 边数关系:n 个节点的树有 n-1 条边,这是树的基本特征之一。 唯一路径:任意两个节点之间有且仅有一条简单路径相连。 无环连通:树是无环的连通图,不会出现“绕一圈回到自己”的情况。 基本术语 表格 术语 说明 结点的度 一个节点拥有的子树数目,如子节点个数为2,则度为2 树的度 树中所有节点的度的最大值,例如某个节点最多有3个孩子,树的度就是3 叶子结点 度为0的节点,也叫终端结点,没有子节点 分支结点 度不为0的节点,即有孩子的节点 父节点 / 子节点 上级节点叫父节点,下级叫子节点 兄弟结点 同一个父节点下的子节点互为兄弟 堂兄弟结点 父节点在同一层且为兄弟的节点的孩子们 祖父结点 父节点的父节点 子孙结点 某个节点的所有后代节点(包括子、孙、曾孙等) 结点的层次 从根开始算起,根为第1层,其子为第2层,依此类推 树的深度(高度) 树中结点的最大层次,例如最深到第4层,深度就是4 树的宽度 一层中节点数最多的那个数量 森林 由多棵互不相交的树组成的集合,比如删除一棵树的根,剩下的就是森林
🌳 树的结构图例说明 根节点(Root):位于最顶层,无父节点,是整棵树的起点。 分支节点(Internal Node):有子节点的非叶节点,连接上下层。 叶子节点(Leaf):无子节点,处于末端。 边(Edge):连接父子节点的线段,n个节点对应n-1条边。 层次分布:从上到下依次为第1层、第2层……体现层级关系。
示例结构:
A ← 根节点(第1层)
/ |
B C D ← 第2层(B、C、D为A的子节点)
/
E F G ← 第3层(E、F是B的孩子;G是D的孩子) ← 共7个节点,6条边
📚 术语对应图示(以上图为例) 表格 术语 图示对应 父节点 A 是 B、C、D 的父节点;B 是 E、F 的父节点 子节点 B、C、D 是 A 的子节点;E、F 是 B 的子节点 兄弟节点 B、C、D 互为兄弟;E 与 F 是兄弟 堂兄弟节点 E、F 与 G 是堂兄弟(因父节点B与D为兄弟) 结点的度 A的度=3,B的度=2,G的度=1,E的度=0 树的度 整棵树的最大节点度为 3(来自A) 路径 从A到F的路径:A → B → F,长度为2 树的深度 最大层次为3(A→B→E这条路径) 树的宽度 第2层有3个节点(B、C、D),为最宽层 🔍 性质验证图示化 ✅ 唯一父节点:除A外,每个节点只有一个上级(如F只连B)。 ✅ 子树不相交:以B、C、D为根的三棵子树无公共节点。 ✅ n个节点有n-1条边:7个节点 → 6条边 ✔ ✅ 任意两点唯一路径:E到G只能走 E→B→A→D→G,无其他通路。 ✅ 无环连通:无法绕行回到自身,且所有节点连通。