第6章 树状结构
前言
数(tree)是另外一种典型的数据结构,可用来描述有分支的结构,属于一种阶层性的非线性结构。从企业的组织架构、家族内的族谱,再到计算机领域中的操作系统与数据库管理系统都是树状结构的衍生运用。
6.1 树
![](https://i-blog.csdnimg.cn/blog_migrate/59e5e99052c6fe429bb7dd42583b0cf4.png)
6.2 二叉树简介
一般树状结构在计算机内存中的存储方式以链表为主。对于n元树来说,因为每个节点的分支都不相同,所以为了方便起见,我们必须取n为链接个数的最大固定长度,而每个节点的数据结构如下:
![](https://i-blog.csdnimg.cn/blog_migrate/1ccbffb55c61e7e822b813b9db7d46c3.png)
需要注意,这种n元树十分浪费链接空间。当n=2时,它的链接浪费率最低,所以为了改进内存空间浪费的缺点,我们最常使用二叉树结构来取代树状结构。
6.2.1二叉树的定义
![](https://i-blog.csdnimg.cn/blog_migrate/48398dc49ab41775a0d320f8e8c0ca83.png)
6.2.2特殊二叉树简介
- 满二叉树
![](https://i-blog.csdnimg.cn/blog_migrate/155e01eb4ccb137bdb787945fd202a21.png)
- 完全二叉树
![](https://i-blog.csdnimg.cn/blog_migrate/d10e2a94e0b8fdc46406462f8c41b7ef.png)
- 歪二叉树