码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 从零开始学数据结构系列之第三章《二叉排序树基础了解》


    文章目录

    • 什么是二叉排序树
    • 构建二叉排序树
    • 往期回顾


    什么是二叉排序树

    我们直接看它的性质:

    • 若它的左子树不空,则左子树上所有结点的值均小于它根结点的值。
    • 若它的右子树不空,则右子树上所有结点的值均大于它根结点的值。
    • 它的左、右树又分为⼆叉排序树

    ​   显然,二叉排序树与二叉树一样,也是通过递归的形式定义的。因此,它的操作也都是基于递归的方式。

    ​   二叉排序树也叫二叉查找树、二叉搜索树,既然名字都不一般,那它显然和普通的二叉树不同。那到底有什么不同,它的特点或者优点在哪里呢?不妨,我们来构建一棵二叉树。

    构建二叉排序树

    在这里插入图片描述

    1. 首先,将8作为根节点
    2. 插入3,由于3小于8,作为8的左子树
    3. 插入10,由于10大于8,作为8的右子树
    4. 插入1,由于1小于8,进入左子树3,1又小于3,则1为3的左子树
    5. 插入6,由于6小于8,进入左子树3,6又大于3,则6为3的右子树
    6. 插入14,由于14大于8,进入右子树10,14又大于10,则14为10的右子树
    7. 插入4,由于4小于8,进入左子树3,4又大于3,进入右子树6,4还小于6,则4为6的左子树
    8. 插入7,由于7小于8,进入左子树3,7又大于3,进入右子树6,7还大于于6,则7为6的右子树
    9. 插入13,由于13大于8,进入右子树10,又13大于10,进入右子树14,13小于14,则13为14的左子树

    经过以上的逻辑,这棵二叉排序树构建完成。
    在这里插入图片描述
    我们可以看出:

    • 只要左子树为空,就把小于父节点的数插入作为左子树
    • 只要右子树为空,就把大于父节点的数插入作为右子树
    • 如果不为空,就一直往下去搜索,直到找到合适的插入位置

    了解了如何构建后,我们不禁要问,这有啥用呀?感觉没啥特别的地方呢?别急!我们马上揭晓!

    我们对这棵二叉树进行中序遍历,看看会发生什么?你自己试一试!

    没错,这棵二叉树中序遍历结果为:

    在这里插入图片描述

    往期回顾

    1.【第一章】《线性表与顺序表》
    2.【第一章】《单链表》
    3.【第一章】《单链表的介绍》
    4.【第一章】《单链表的基本操作》
    5.【第一章】《单链表循环》
    6.【第一章】《双链表》
    7.【第一章】《双链表循环》
    8.【第二章】《栈》
    9.【第二章】《队》
    10.【第二章】《字符串暴力匹配》
    11.【第二章】《字符串kmp匹配》
    12.【第三章】《树的基础概念》
    13.【第三章】《二叉树的存储结构》
    14.【第三章】《二叉树链式结构及实现1》
    15.【第三章】《二叉树链式结构及实现2》
    16.【第三章】《二叉树链式结构及实现3》
    17.【第三章】《二叉树链式结构及实现4》
    18.【第三章】《二叉树链式结构及实现5》
    19.【第三章】《中序线索二叉树理论部分》
    20.【第三章】《中序线索二叉树代码初始化及创树》
    21.【第三章】《中序线索二叉树线索化及总代码》
    22【第三章】《先序线索二叉树理论及线索化》
    23【第三章】《先序线索二叉树查找及总代码》
    24【第三章】《后续线索二叉树线索化理论》
    25【第三章】《后续线索二叉树总代码部分》

  • 相关阅读:
    Qt中表格属性相关操作,调整表格宽度高度自适应内容等
    MIGO行项目屏幕增强
    张俊将出席用磁悬浮技术改变生活演讲
    2.6 用一套万能文案公式来拆解4个小红书爆文案例【玩赚小红书】
    【算法05】合并两个有序链表
    详谈动态规划问题并解最大子数组和
    qml+QQuickPaintedItem笛卡尔坐标和屏幕坐标的转换
    【Npm】的安装和使用教程
    测试员都是背锅侠?测试人员避“锅”攻略,拿走不谢
    青少年python系列 34.内建函数
  • 原文地址:https://blog.csdn.net/qq_62548908/article/details/139845111
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号