文章目录

  • 简介
  • BST的基本性质
  • BST的构建
  • BST的搜索
  • BST的插入
  • BST的删除

看动画学算法之:二叉搜索树BST

简介

树是类似于链表的数据结构,和链表的线性结构不同的是,树是具有层次结构的非线性的数据结构。

树是由很多个节点组成的,每个节点可以指向很多个节点。

如果一个树中的每个节点都只有0,1,2个子节点的话,这颗树就被称为二叉树,如果我们对二叉树进行一定的排序。

比如,对于二叉树中的每个节点,如果左子树节点的元素都小于根节点,而右子树的节点的元素都大于根节点,那么这样的树被叫做二叉搜索树(Binary Search Tree)简称BST。

今天我们来探讨一下BST的性质和对BST的基本操作。

BST的基本性质

刚刚我们已经讲过BST的基本特征了,现在我们再来总结一下:

  1. BST中任意节点的左子树一定要比该节点的值要小
  2. BST中任意节点的右子树一定要比该节点的值要大
  3. BST中任意节点的左右子树一定要是一个BST。

看一张图直观的感受一下BST:

看动画学算法之:二叉搜索树BST相关推荐

  1. 看动画学算法之:二叉堆Binary Heap

    文章目录 简介 二叉堆的特性 二叉堆的作用 二叉堆的构建 获取二叉堆的最大值 二叉堆的插入 insert操作的时间复杂度 二叉堆的提取Max操作 extractMax的时间复杂度 创建二叉堆 简介 我 ...

  2. 算法:二叉搜索树BST - 删除节点 详解(Java实现)

    删除节点 删除节点存在 3 种情况,几乎所有类似博客都提到了这点.这 3 种情况分别如下: 没有左右子节点,可以直接删除 存在左节点或者右节点,删除后需要对子节点移动 同时存在左右子节点,不能简单的删 ...

  3. 《数据结构与算法之二叉搜索树(Java实现)》

    说在前头:本人为大二在读学生,书写文章的目的是为了对自己掌握的知识和技术进行一定的记录,同时乐于与大家一起分享,因本人资历尚浅,能力有限,文章难免存在一些错漏之处,还请阅读此文章的大牛们见谅与斧正.若 ...

  4. 【数据结构与算法】3.二叉搜索树(BST)、c++代码

    二叉搜索树(BST).c++代码 参考 https://blog.csdn.net/c_living/article/details/81021510

  5. 真c++ 从二叉树到红黑树(3)之二叉搜索树BST

      此文章为从二叉树到红黑树系列文章的第三节,主要介绍介绍二叉搜索树BST,为AVL和RedBlack打下基础 文章目录 一.前面文章链接~(点击右边波浪线可以返回目录) 二.二叉搜索树BST的定义~ ...

  6. 阿里开发者招聘节 | 面试题02-04:给定一个二叉搜索树(BST),找到树中第K小的节点

    为帮助开发者们提升面试技能.有机会入职阿里,云栖社区特别制作了这个专辑--阿里巴巴资深技术专家们结合多年的工作.面试经验总结提炼而成的面试真题这一次将陆续放出(面试题官方参考答案将在专辑结束后统一汇总 ...

  7. 二叉搜索树BST红黑树

    二叉搜索树基础知识 提起红黑树咱们肯定要先说说这个二叉搜索树(BST) 二叉搜索树又叫二叉查找树,二叉排序树:它具有以下特点: 如果它的左子树不为空,则左子树上结点的值都小于根结点. 如果它的右子树不 ...

  8. 二叉搜索树(BST)详解

    数据结构:二叉搜索树(BST) 今天咱们来聊聊二叉搜索树,先从字面上来理解,二叉,指的是有两个分支,左子树和右子树:搜索树,啥意思呢,搜索,是不是就是之前学过dfs和bfs那边学过,对啊,dfs就是深 ...

  9. 二叉搜索树BST的学习

    文章目录 二叉搜索树BST 什么是BST? 用BST做什么? 一.BST的特性 BST的特性是什么? 1.[230. 二叉搜索树中第K小的元素](https://leetcode.cn/problem ...

最新文章

  1. 人工智能学派之间的「联姻」——Yoshua 新作居然用DL「复活」了符号主义
  2. Mybatis 基础 定义别名,属性配置
  3. (二)Linux命令使用
  4. python小波分解与重构_python - 使用pyWavelets进行多级局部小波重构 - 堆栈内存溢出...
  5. linux精灵进程之crond
  6. linux清理缓存_自动清理linux系统内存和Cache方法
  7. ETF最神秘的地带:清算交收(背景知识篇)
  8. html国庆节代码,QQ空间国庆节留言代码_祝大家国庆节快乐
  9. GBK、UTF-8、ASCLL、url编码
  10. 安装脚本实现百度云播放视频加速
  11. 贵州国际商品交易中心依托实体经济发展虚拟经济
  12. 2011年安徽省公务员考试行测真题(3)
  13. 分布式系统之-我的书单
  14. 关于Ajax跨域的解决方案
  15. html图片水平镜像翻转
  16. java 前置系统报文通讯方式_银行核心与前置系统的区别
  17. AtCoder Regular Contest 105 C - Camels and Bridge
  18. 【源码】用主应力线(应力可视化)研究二维应力场
  19. 《竞品调研:抄也是一门学问》学习总结
  20. js textarea换行

热门文章

  1. amd处理器更新zen4服务器芯片,AMD更新CPU、GPU路线图:Zen4架构与硬件光追可期
  2. ESP8266开发笔记
  3. [loj6391][THUPC2018]淘米神的树(Tommy)
  4. Kafka设计解析(四):Kafka Consumer解析
  5. 进程间通信 - 匿名管道实现
  6. _beginthreadex与CreateThread区别与联系
  7. 优化传输文件的性能- -零拷贝
  8. LeetCode 打家劫舍问题
  9. 对话美摄科技侯康:提升技术,拓展场景 美摄智能汽车视频处理方案已就位
  10. AI视觉,视频云新挑战的解决之道