数据结构–二叉树的定义和基本术语
二叉树的基本概念
二叉树是
n
(
n
≥
0
)
n (n\ge0)
n(n≥0)个结点的有限集合:
①或者为
空二叉树
\color{red}空二叉树
空二叉树,即n = 0。
②或者由一个
根结点
\color{red}根结点
根结点和两个互不相交的被称为根的
左子树
\color{red}左子树
左子树和
右子树
\color{red}右子树
右子树组成。左子树和右子树又分别是一棵二叉树。
特点:①每个结点至多只有两棵子树②左右子树不能颠倒(二叉树是
有序树
\color{red}有序树
有序树)
注意区别: 度为2的有序树
度为 2 的有序树是二叉树,二叉树不一定是度为 2 的有序树 \color{red}度为2的有序树是二叉树,二叉树不一定是度为2的有序树 度为2的有序树是二叉树,二叉树不一定是度为2的有序树
二叉树是递归定义的数据结构 \color{green}二叉树是递归定义的数据结构 二叉树是递归定义的数据结构
二叉树的五种状态
几个特殊的二叉树
满二叉树 \color{red}满二叉树 满二叉树。一棵高度为h,且含有 2 h − 1 2^h-1 2h−1个结点的二叉树
特点:
①只有最后一层有叶子结点
②不存在度为1的结点
③按层序从1开始编号,结点i的左孩子为2i,右孩子为2i+1;结点i的父节点为
⌊
i
/
2
⌋
\left\lfloor i/2\right\rfloor
⌊i/2⌋(如果有的话)
完全二叉树 \color{red}完全二叉树 完全二叉树。当且仅当其每个结点都与高度为h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树
特点:
①只有最后两层可能有叶子结点②最多只有一个度为1的结点
③同上③
④i ≤
⌊
i
/
2
⌋
\left\lfloor i/2\right\rfloor
⌊i/2⌋为分支结点,i >
⌊
i
/
2
⌋
\left\lfloor i/2\right\rfloor
⌊i/2⌋为叶子结点
几个特殊的二叉树
二叉排序树
\color{red}二叉排序树
二叉排序树。一棵二叉树或者是空二叉树,或者是具有如下性质的二叉树:
左子树
\color{red}左子树
左子树上所有结点的
关键字
\color{red}关键字
关键字均
小于根结点
\color{red}小于根结点
小于根结点的关键字;
右子树
\color{red}右子树
右子树上所有结点的
关键字
\color{red}关键字
关键字均
大于根结点
\color{red}大于根结点
大于根结点的关键字。
左子树和右子树又各是一棵二叉排序树。
二叉排序树可用于元素的排序、搜索 \color{purple}二叉排序树可用于元素的排序、搜索 二叉排序树可用于元素的排序、搜索
平衡二叉树 \color{red}平衡二叉树 平衡二叉树。树上任一结点的 左子树 \color{red}左子树 左子树和 右子树 \color{red}右子树 右子树的 深度之差不超过 1 \color{red}深度之差不超过1 深度之差不超过1。
平衡二叉树能有更高的搜索效率 \color{purple}平衡二叉树能有更高的搜索效率 平衡二叉树能有更高的搜索效率