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 的左侧,找到了。

相关文章
算法:图解递归算法的应用场景和使用途径
算法:图解递归算法的应用场景和使用途径
|
算法
递归和迭代详解
递归和迭代详解
567 1
|
算法 调度
作业调度算法_先来先服务算法_短作业优先算法_高响应比优先算法
本文介绍了作业调度算法,包括先来先服务(FCFS)、短进程优先(SJF)和高响应比优先(HRRN)算法。通过分析进程的到达时间和所需CPU服务时间,计算进程的开始时间、完成时间、平均周转时间和平均带权周转时间,以评估不同算法的性能。FCFS适合长作业,SJF适合短作业,而HRRN则综合了两者的优点。
768 12
|
存储 数据管理 数据库
理解数据库中的参照完整性
【6月更文挑战第13天】数据库设计旨在创建和维护企业的数据管理系统,确保数据完整性和消除冲突。好的数据库设计应减少冗余,保证信息准确完整,并满足处理和报告需求。设计工具包括E-R图和UML等。
1161 2
理解数据库中的参照完整性
|
存储 移动开发 算法
磁盘调度算法
磁盘调度算法
342 2
|
缓存 网络协议 安全
老程序员分享:OSI七层模型
老程序员分享:OSI七层模型
553 0
【高阶数据结构】图 -- 详解(上)
【高阶数据结构】图 -- 详解(上)
计算机组成原理——浮点数加减运算&强制类型转换
计算机组成原理——浮点数加减运算&强制类型转换
1424 0
计算机组成原理——浮点数加减运算&强制类型转换
可靠性(MTTF,MTTR,MTBF以及系统可靠性的计算,串联,并联,模冗余系统)
可靠性(MTTF,MTTR,MTBF以及系统可靠性的计算,串联,并联,模冗余系统)
2410 1
|
存储 移动开发 搜索推荐
利用C语言实现十大经典排序算法的方法
利用C语言实现十大经典排序算法的方法
424 1