数据结构与算法高级:树的概念与二叉查找树详解
创作时间:
作者:
@小白创作中心
数据结构与算法高级:树的概念与二叉查找树详解
引用
CSDN
1.
https://m.blog.csdn.net/qq_37481675/article/details/139962193
在计算机科学领域,数据结构是算法的基础。其中,树作为一种非线性数据结构,在实际应用中扮演着重要角色。本文将详细介绍树的概念、分类以及二叉查找树的特性,帮助读者更好地理解这一基础数据结构。
树的概念
在实际场景中,很多数据的逻辑关系并不是线性的,常常存在着一对多,甚至是多对多的情况。这种数据结构被称为树。
在数据结构中,树的定义如下:
- 树(tree)是n(n≥0)个节点的有限集。
- 当n=0时,称为空树。
- 在任意一个非空树中,有如下特点:
- 有且仅有一个特定的称为根的节点。
- 当n>1时,其余节点可分为m(m>0)个互不相交的有限集,每一个集合本身又是一个树,并称为根的子树。
如上图所示,一颗标准的树包含以下节点类型:
- 根节点(root):没有父节点,这里是节点1。
- 叶子节点(leaf):树的末端,没有“孩子”,这里是节点5、6、7、8。
- 中间节点或枝节点:有父节点,也有孩子,这里是节点2、3、4。
树的最大层级数被称为树的高度或深度。上图这个树的高度是4。
树的分类
二叉树
二叉树(binary tree)是树的一种特殊形式。每个节点最多有2个孩子节点,可能只有1个,也可能没有孩子节点。
满二叉树
一个二叉树的所有非叶子节点都存在左右孩子,并且所有叶子节点都在同一层级上,那么这个树就是满二叉树。
完全二叉树
对一个有n个节点的二叉树,按层级顺序编号,则所有节点的编号为从1到n。如果这个树所有节点和同样深度的满二叉树的编号为从1到n的节点位置相同,则这个二叉树为完全二叉树。
二叉树的存储
二叉树属于逻辑结构,可以使用链表和数组进行存储。
链式存储
二叉树的每一个节点包含3部分:
- 存储数据的data变量
- 指向左孩子的left指针
- 指向右孩子的right指针
数组存储
使用数组存储时,会按照层级顺序把二叉树的节点放到数组中对应的位置上。如果某一个节点的左孩子或右孩子空缺,则数组的相应位置也空出来。
寻址方式:一个父节点的下标是n,那么它的左孩子节点下标就是2×n+1、右孩子节点下标就是2*(n+1)。对于一个稀疏的二叉树(孩子不满)来说,用数组表示法是非常浪费空间的。所以二叉树一般用链表存储实现(二叉堆除外)。
二叉查找树
二叉查找树(binary search tree)在二叉树的基础上增加了以下几个条件:
- 如果左子树不为空,则左子树上所有节点的值均小于根节点的值
- 如果右子树不为空,则右子树上所有节点的值均大于根节点的值
- 左、右子树也都是二叉查找树
热门推荐
继父关系怎么证明父亲关系
继父关系证明方法及继子女继承权解析
李世民的子女群像:一窥唐朝皇室的家族图谱
刚拆石膏要注意什么
碳纤维复合材料回收再利用研究
乒乓球不只是娱乐,教你如何提升业余乒乓球的实战水平!
什么是第一性原理
肝胆结石除了手术,还有这5种治疗方法
海南西岛周边旅游景点推荐
去云南哪里旅游可以住农家
卫生间用过门石还是瓷砖,装修选择看这里
部队文职有幼师岗位吗,部队文职岗位中是否有幼师职位存在
武松打虎的故事:一个关于勇气与正义的传奇
12个时辰对照表,探索古代时间的奥秘
报警时如何保存证据视频:拍摄视频的技巧和注意事项
个人资金被骗怎么办?报警立案全流程指南
如何为柴胡提供最佳生长环境(从气候条件、土壤要求到水分管理)
个体工商户怎么转让给别人
个体工商户营业执照能否转让
殡葬专业的大学有哪些(附中国殡葬专业大学排名名单一览表)
2025年工伤保险赔偿标准及流程详解
北方经济的希望在河南
硅胶铸造:模具、技术与应用指南
特征金字塔网络(FPN)结构详解
到东莞各大森林公园登高赏秋,请收好这份指引
股东的新股优先认购权有哪些规定
医保卡现在还能代付吗?
人参果怎么看熟没熟?4个好方法值得看!
绝地求生刺激战场为何突然下架?-刺激战场下架原因深度解析
心肌炎怎么锻炼能恢复