内容简介:推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。二叉搜索树(Binary Search Tree,简写BST),又称为二叉排序树,属于树的一种,通过二叉树将数据组织起来,树的每个节点都包含了健值 key、数据值 data、左子节点指针、右子节点指针。其中健值 key 是最核心的部分,它的值决定了树的组织形状;数据值 data 是该节点对应的数据,有些场景可以忽略,举个例
推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种 排序 等等几十篇的样子。
二叉搜索树
二叉搜索树(Binary Search Tree,简写BST),又称为二叉排序树,属于树的一种,通过二叉树将数据组织起来,树的每个节点都包含了健值 key、数据值 data、左子节点指针、右子节点指针。其中健值 key 是最核心的部分,它的值决定了树的组织形状;数据值 data 是该节点对应的数据,有些场景可以忽略,举个例子,key 为身份证号而 data 为人名,通过身份证号找人名;左子节点指针指向左子节点;右子节点指针指向右子节点。
二叉搜索树特点
- 左右子树也分别是二叉搜索树。
- 左子树的所有节点 key 值都小于它的根节点的 key 值。
- 右子树的所有节点 key 值都大于他的根节点的 key 值。
- 二叉搜索树可以为一棵空树。
- 一般来说,树中的每个节点的 key 值都不相等,但根据需要也可以将相同的 key 值插入树中。
中序遍历
我们知道对于二叉树来说,遍历的方式一般有三种:前序遍历、中序遍历和后序遍历。但对于二叉搜索树,比较常用的是中序遍历,因为通过该种方式遍历出来的元素属于一个递增序列。
开始中序遍历,即是以“左根右”方式遍历,先找到“A”,
接着找到“B”,
往下一个个获取,
树的最小key值
二叉搜索树的最小 key 值节点从根节点开始一直沿着左子节点搜索,直到遇到节点的左子节点指针为空,即找到最小值节点。因为二叉搜索树中左边的节点总是小于右边的节点,所以一直往左寻找。
从根节点开始,
往左查找,
再往左,到达“A”节点,没有左子节点了,停止搜索,找到最小值。
树的最大key值
二叉搜索树的最大 key 值节点从根节点开始一直沿着右子节点搜索,直到遇到节点的右子节点指针为空,即找到最大值节点。因为二叉搜索树中右边的节点总是大于左边的节点,所以一直往右寻找。
从根节点开始,
往右查找,
再往右,到达“H”节点,没有右子节点了,停止搜索,找到最大值。
-------------推荐阅读------------
我的开源项目汇总(机器&深度学习、NLP、网络IO、AIML、 mysql 协议、chatbot)
跟我交流,向我提问:
欢迎关注:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 数组常见的遍历循环方法、数组的循环遍历的效率对比
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——遍历和删除
- Js遍历数组总结
- 遍历
- 遍历 DOM 注意点
- MySQL 实现树形的遍历
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
VC++深入详解
孙鑫 / 电子工业出版社 / 2006-6 / 89.00元
《VC++深入详解》主要从程序内部运行的机制和MFC程序的组织脉络入手,使读者在学习VC++编程知识时,既能够知其然,又能知其所以然,从而帮助读者从根本上理解和掌握Windows的程序设计。另外,《VC++深入详解》还贯穿作者多年来学习编程的一些经验,以及一些学习方法的建议,为读者进一步的学习提供指导。 《VC++深入详解》从实际应用入手,由浅入深、循序渐进地讲述Windows程......一起来看看 《VC++深入详解》 这本书的介绍吧!