0
点赞
收藏
分享

微信扫一扫

【算法系列】二叉树——1,常用的树

文章目录

由节点组成,一个节点有N个子节点。

多叉树

一个节点有多个子节点。

二叉树

在这里插入图片描述

一个树,所有节点最多有两个子节点,称为二叉树。

有一些基本的功能。三序遍历。

完全二叉树

除了最后一层,都满满当当。

满二叉树

满满当当。

顺序存储二叉树

完全二叉树,可以由数组来表示。

对于索引为k的节点,其左子索引为2k+1,右子为2k+2。
超过长度即为没有子节点。

线索化二叉树

完全二叉树。可以稍快速地遍历。

由遍历顺序,可以分为三种。
所有叶子节点的左子节点指向遍历的前一个元素。
右子节点指向遍历的后一个元素。

完全二叉树。可以用来排序。

有大顶堆和小顶堆两种。
大顶堆:任意节点的值都比其左右子大。左右没有大小关系。
小顶堆:比左右子小。

堆排序:一种比较稳定的排序。

赫夫曼树

完全二叉树。可以节省空间。
学名为,带权路径长最短的树。

003和004,可以节省为0,0,3,4四个节点。

应用:数据压缩。

二叉查找树

又称:二叉搜索树,二叉排序树。

顾名思义,查找效率高。为什么呢?
左子内部的所有节点,值都比该节点小。
右子内部,比该节点都大。

类似于二分法,可以迅速地缩小搜索范围。

平衡二叉树

在这里插入图片描述

树如果只有一个子节点,那就和链表差不多了。右侧的图。

平衡二叉树,对节点的子做了一些要求。
高为h的BT, 其结点的数目在2(h+1)-1和1/2(3(h+1)−1)之间, 叶的数目在2h和3h之间。

平衡二叉搜索树

就是平衡的二叉搜索树。

红黑树

平衡二叉树。节点有颜色,非红即黑。

有很多要求。特点是修改效率高。

在这里插入图片描述

B树

平衡的多叉树,适用于查找。
二叉对海量数据还是有点吃力。所以数据库多用B树。

在这里插入图片描述

B+树

B树,叶子节点有前后的指针,以提高遍历效率。

举报

相关推荐

0 条评论