树与二叉树--树的基本概念

1、树的基本概念总结

1.树是n(n≥0)个节点的有限集合。

2.n=0 时称为空树。

3.非空树满足:

有且仅有一个根节点(Root)。

其余节点可分成 m 个互不相交的子集合,每个子集本身也是一棵树,称为子树。


2. 基本术语

根节点:最顶层节点,没有父节点。

叶子节点:没有子节点的节点。

父节点 / 子节点:直接相连的上下级节点。

兄弟节点:同一个父节点的子节点。

祖先 / 后代:从根到某节点路径上所有节点为祖先;某节点子树中所有节点为后代。

节点的度:节点拥有的子树个数。

树的度:树中所有节点的度的最大值。

层数(深度):根节点在第 1 层(或第 0 层,看教材),子节点层数 = 父节点层数 + 1。

树的高度(深度):树中节点的最大层数。

森林:m(m≥0)棵互不相交的树的集合。


3. 有序树 vs 无序树

有序树:子节点从左到右顺序有意义,不能互换。

无序树:子节点顺序无关。


4. 二叉树(最常用)

每个节点最多有两个子节点,分别称为左孩子、右孩子。

是有序树,左右子树不能互换。

二叉树的重要性质

第 i 层最多有 2^(i-1) 个节点。

深度为 k 的二叉树最多有 2^k − 1 个节点。

叶子节点数 n₀ = 度为 2 的节点数 n₂ + 1。

特殊二叉树

满二叉树:每一层节点都满,深度 k 有 2^k−1 个节点。

完全二叉树:除最后一层外都满,最后一层节点靠左排列。

二叉排序树(BST):左 < 根 < 右,便于查找。

平衡二叉树(AVL):左右子树高度差不超过 1。

哈夫曼树:带权路径长度最短的二叉树,用于编码。


5. 树的存储结构

顺序存储:数组,适合完全二叉树。

链式存储:二叉链表


6. 遍历方式(二叉树)

先序遍历:根 → 左 → 右

中序遍历:左 → 根 → 右

后序遍历:左 → 右 → 根

层序遍历:从上到下、从左到右(用队列实现)

相关推荐
地平线开发者5 小时前
profiler debug 工具用法与高一致性策略
算法·自动驾驶
编程大师哥5 小时前
匿名函数 lambda + 高阶函数
java·python·算法
我叫袁小陌5 小时前
算法解题思路指南
算法
地平线开发者5 小时前
Conv+BN+Add+ReLU 融合机制简介
算法·自动驾驶
也曾看到过繁星6 小时前
数据结构---顺序表
数据结构
yuanyuan2o26 小时前
模型预训练:Hugging Face Transformers 基础
算法·ai·语言模型·自然语言处理·nlp·深度优先
杨充6 小时前
1.3 浮点型数据设计灵魂
开发语言·python·算法
妄想出头的工业炼药师6 小时前
GS slam mono
算法·开源
meilindehuzi_a7 小时前
深入浅出数据结构:Python 字典(Dict)与集合(Set)的哈希表底层全链路追踪
数据结构·python·散列表