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

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

先序遍历:根 → 左 → 右

中序遍历:左 → 根 → 右

后序遍历:左 → 右 → 根

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

相关推荐
To_OC15 小时前
LC 1 两数之和:面试第一道必考题,暴力解法直接被面试官 pass
javascript·算法·leetcode
鱼鱼不愚与20 小时前
《原来如此 | 第01期:为什么导航软件能预测红绿灯倒计时?》
算法
复杂网络1 天前
论最小 Agent 计算机的形态
算法
kisshyshy2 天前
🍦 雪糕、食堂、火车厢:三幅漫画吃透栈、队列与链表
javascript·算法
猿人谷2 天前
不只是 CPU 阈值:STAR 如何用 GAT + Transformer 做容器级自动扩缩容?
人工智能·算法
复杂网络2 天前
Stable Diffusion 视觉大模型微调技术深度调研
算法
复杂网络2 天前
基于 Stable Diffusion 架构的视觉大模型代表性工作与原理深度解析
算法
MrZhao4002 天前
Agent Loop 如何用 Hook 扩展:权限、日志与工具拦截
算法
MrZhao4002 天前
Agent 为什么需要 Skills:别把所有知识都塞进 system prompt
算法