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

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. 遍历方式(二叉树)

先序遍历:根 → 左 → 右

中序遍历:左 → 根 → 右

后序遍历:左 → 右 → 根

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

相关推荐
什巳15 小时前
JAVA练习309- 二叉树的层序遍历
java·数据结构·算法·leetcode
什巳17 小时前
JAVA练习306- 翻转二叉树
java·数据结构·算法·leetcode
smj2302_7968265218 小时前
解决leetcode第3989题网格中保持一致的最大列数
python·算法·leetcode
巧克力男孩dd19 小时前
Python超典型练习题(第一次作业)
开发语言·python·算法
爱刷碗的苏泓舒19 小时前
平方根信息滤波:矩阵推导及 GNSS 参数估计应用
线性代数·算法·矩阵·gnss·参数估计·测量平差·平方根信息滤波
想做小南娘,发现自己是女生喵20 小时前
第 2 章 顺序表和 vector
java·数据结构·算法
艾醒21 小时前
2026年第29周(7.13-7.19)AI全复盘:技术突破、行业趣闻翻车、算力服务器商业动态
人工智能·算法
雪碧聊技术21 小时前
动态规划算法—01背包问题
算法·动态规划
bu_shuo21 小时前
c与cpp中的argc和argv
c语言·c++·算法
普贤莲花21 小时前
【2026年第29周---写于20260718】---整理,断舍离
程序人生·算法·生活