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

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

先序遍历:根 → 左 → 右

中序遍历:左 → 根 → 右

后序遍历:左 → 右 → 根

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

相关推荐
AC赳赳老秦1 天前
知识产权辅助:用 OpenClaw 批量生成专利交底书 / 软著申请材料,自动校验格式与内容合规性
java·人工智能·python·算法·elasticsearch·deepseek·openclaw
WBluuue1 天前
Codeforces 1093 Div2(ABCD1D2)
c++·算法
浅念-1 天前
「一文吃透 BFS:从层序遍历到锯齿形、最大宽度、每层最大值」
数据结构·算法
汉克老师1 天前
GESP5级C++考试语法知识(十三、贪心算法(一))
算法·贪心算法·海盗船·gesp5级·gesp五级·排队接水
梦想画家1 天前
Apache AGE实战指南:从Cypher语法到核心图算法
算法·cypher·apache age
刀法如飞1 天前
Go数组去重的20种实现方式,AI时代解决问题的不同思路
后端·算法·go
旖-旎1 天前
深搜练习(N皇后)(10)
c++·算法·深度优先·力扣
苍煜1 天前
二叉树、红黑树、B树、B+树通俗教学:各自适配场景+MySQL索引终极选型原因
数据结构·b树·mysql
Controller-Inversion1 天前
322. 零钱兑换
算法
头发够用的程序员1 天前
C++和Python面试经典算法汇总(一)
开发语言·c++·python·算法·容器·面试