18 张图,一文了解 8 种常见的数据结构(2)

简介: 18 张图,一文了解 8 种常见的数据结构

假如有三个节点,一个是父节点,两个是不同级的子节点,那么就有六种情况:


image.png


三个节点组成的无序树,合起来就是九种情况。


二叉树:每个节点最多含有两个子树。二叉树按照不同的表现形式又可以分为多种。

完全二叉树:对于一颗二叉树,假设其深度为 d(d > 1)。除了第 d 层,其它各层的节点数目均已达最大值,且第 d 层所有节点从左向右连续地紧密排列,这样的二叉树被称为完全二叉树。


image.png


拿上图来说,d 为 3,除了第 3 层,第 1 层、第 2 层 都达到了最大值(2 个子节点),并且第 3 层的所有节点从左向右联系地紧密排列(H、I、J、K、L),符合完全二叉树的要求。


满二叉树:一颗每一层的节点数都达到了最大值的二叉树。有两种表现形式,第一种,像下图这样(每一层都是满的),满足每一层的节点数都达到了最大值 2。


image.png


第二种,像下图这样(每一层虽然不满),但每一层的节点数仍然达到了最大值 2。


image.png


二叉查找树:英文名叫 Binary Search Tree,即 BST,需要满足以下条件:


任意节点的左子树不空,左子树上所有节点的值均小于它的根节点的值;

任意节点的右子树不空,右子树上所有节点的值均大于它的根节点的值;

任意节点的左、右子树也分别为二叉查找树。


image.png

基于二叉查找树的特点,它相比较于其他数据结构的优势就在于查找、插入的时间复杂度较低,为 O(logn)。假如我们要从上图中查找 5 个元素,先从根节点 7 开始找,5 必定在 7 的左侧,找到 4,那 5 必定在 4 的右侧,找到 6,那 5 必定在 6 的左侧,找到了。

相关文章
|
7月前
|
算法 定位技术 Python
数据结构-图
数据结构-图
|
4月前
|
算法
数据结构的图的理解
数据结构的图的理解
|
存储 算法 JavaScript
数据结构:图
数据结构:图
110 0
|
存储 机器学习/深度学习 人工智能
常见数据结构-图的表示
图和树一样都是非线性表数据结构,但是更复杂。树中的元素我们称为节点,图中的元素我们叫作顶点(vertex)。图中的一个顶点可以与任意其他顶点建立连接关系,这种连接关系叫作边(edge)。有方向的图叫做“有向图”。以此类推,我们把边没有方向的图就叫做“无向图”。
235 0
|
存储 人工智能 算法
|
存储 算法
|
存储 C语言 数据格式
|
存储 算法
数据结构图
数据结构图
156 0
数据结构图