当前位置: 首页 > news >正文

4 张 GIF 图帮助你理解二叉查找树

二叉查找树(Binary Search Tree),也称二叉搜索树,是指一棵空树或者具有下列性质的二叉树:

1.任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
2.任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
3.任意节点的左、右子树也分别为二叉查找树;
4.没有键值相等的节点。

图1:查找 BST 中的某个元素

在二叉搜索树b中查找x的过程为:

若b是空树,则搜索失败,否则:
若x等于b的根节点的数据域之值,则查找成功;否则:
若x小于b的根节点的数据域之值,则搜索左子树;否则:
查找右子树。

422101-20160914180623367-268046051.gif

图2 ↓ :从有序数组构造一个二叉查找树

422101-20160914180633648-1967343454.gif

图3 ↓:往 BST 中插入元素

向一个二叉搜索树b中插入一个节点s的算法,过程为:

若b是空树,则将s所指结点作为根节点插入,否则:
若s->data等于b的根节点的数据域之值,则返回,否则:
若s->data小于b的根节点的数据域之值,则把s所指节点插入到左子树中,否则:
把s所指节点插入到右子树中。(新插入节点总是叶子节点)

422101-20160914180644617-1773610852.gif

图4 ↓:BST 转成有序数组
422101-20160914180656633-354099265.gif

相关文章:

  • linux目录结构详细介绍
  • Android EditText光标位置(定位到最后)
  • 深刻理解Python中的元类(metaclass)
  • c++中类对象的内存对齐
  • Significance Testing
  • 延迟脚本的方式
  • shell中变量的查看和删除
  • 算法分析-分治 归并排序,递归插入排序,二分查找
  • mysql搭建及数据迁移教程
  • mysql 5.7 zip 文件在 windows下的安装
  • linux_group总结
  • scrapy 学习笔记
  • 关于 jquery 选择器的 深入理解 -1
  • c++ vector 用法
  • LD_LIBRARY_PATH的设定
  • 【译】理解JavaScript:new 关键字
  • eclipse的离线汉化
  • ES6核心特性
  • exif信息对照
  • JavaScript服务器推送技术之 WebSocket
  • Mac转Windows的拯救指南
  • Node + FFmpeg 实现Canvas动画导出视频
  • Python中eval与exec的使用及区别
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • SQLServer之索引简介
  • Transformer-XL: Unleashing the Potential of Attention Models
  • vuex 学习笔记 01
  • 笨办法学C 练习34:动态数组
  • 简单易用的leetcode开发测试工具(npm)
  • 聊聊flink的BlobWriter
  • 扑朔迷离的属性和特性【彻底弄清】
  • 嵌入式文件系统
  • 区块链将重新定义世界
  • 学习Vue.js的五个小例子
  • 译米田引理
  • python最赚钱的4个方向,你最心动的是哪个?
  • 阿里云ACE认证之理解CDN技术
  • ​520就是要宠粉,你的心头书我买单
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • ###C语言程序设计-----C语言学习(6)#
  • #{} 和 ${}区别
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (第二周)效能测试
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (六)Hibernate的二级缓存
  • (南京观海微电子)——I3C协议介绍
  • (三)Honghu Cloud云架构一定时调度平台
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (原創) 物件導向與老子思想 (OO)
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)linux 命令大全
  • (转)Mysql的优化设置