BST

性质

左子树<根节点、右子树>根节点

用途

解决排名相关的检索需求

基本操作

插入操作

一直插入到叶子节点

删除操作

1、删除叶子节点:直接删除,并将其父节点的孩子节点置空

2、删除度为1的节点:删除后,将孩子节点挂到父节点的父节点上

3、删除度为2的节点:找到前驱或者后继替换后,转换为度为1的节点

缺点

查找效率依赖于节点的插入顺序

AVL树

二叉排序树可能会退化成链表,时间效率从o(logn)---->o(n)

所以给出了平衡二叉排序树

性质

|h(left) - h(right)| <= 1

高度限制:low(h-2) + low(h-2) + 1 <= size(h) <= 2 ^ h - 1

近似于:1.5^h <= size(h) <= 2^h -1

调整策略

LL型:直接将不平衡的节点右旋

LR型:将不平衡节点的左孩子节点左旋,然后将该节点右旋

RL型:将不平衡节点的右孩子右旋,将该节点左旋

RR型:将不平衡节点左旋

SB树

满足:

size(left) >= size(right->left)、size(left) >= size(right->right);

size(right) >= size(left->left)、size(right) >= size(left->right);

BST+AVL+SB相关推荐

  1. BST AVL 红黑树 B B+树

    二叉搜索树(BST) 简明BST递归定义(Knuth Donald): 对于任意一个节点均满足: 1. 所有位于左子树的节点值均比该节点值小 2. 所有位于右子树的节点值均大于等于该节点值 3. 所有 ...

  2. 3. 数据结构--二叉树 BST AVL树 Huffman

    数据结构–二叉树 KEY:(不敢相信没有堆-) 二叉树的定义及其主要特征 ☑️ 二叉树的顺序存储结构和链式存储结构实现 二叉树的遍历及应用 二叉排序(查找.检索)树 (BST) 平衡的二叉检索树- A ...

  3. 《恋上数据结构第1季》平衡二叉搜索树、AVL树

    AVL树 二叉搜索树缺点分析 改进二叉搜索树 平衡(Balance) 理想平衡 如何改进二叉搜索树? 平衡二叉搜索树(Balanced Binary Search Tree) AVL树 BST 对比 ...

  4. 真c++ 从二叉树到红黑树(4)之二叉平衡搜索树AVL

      此文章为从二叉树到红黑树系列文章的第四节,主要介绍介绍二叉平衡搜索树AVL,当你理解了AVL,红黑树你就理解了一半了! 文章目录 一.前面文章链接~(点击右边波浪线可以返回目录) 二.由BST引入 ...

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

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

  6. 树根c语言,03-树1 树的同构 (C语言链表实现)

    #include #include #include #include typedef char ElemType; typedef struct BinTree { ElemType data; s ...

  7. 数据结构 多路查找树 ---------B树和B+树的简单介绍

    参考链接:微信公众号 程序员小灰 https://mp.weixin.qq.com/s/rDCEFzoKHIjyHfI_bsz5Rw https://mp.weixin.qq.com/s/jRZMMO ...

  8. 数据结构-动态查找树表与平衡二叉树 红黑树简单介绍

    参考资料 数据结构(严蔚敏) 大话数据结构 百度百科 https://blog.csdn.net/lpp0900320123/article/details/39524947 https://mp.w ...

  9. 2.14_AVL_tree_AVL树

    from 2.13_BST import BiTreeNode, BST AVL树节点类 (继承二叉树节点类) class AVLNode(BiTreeNode):def __init__(self, ...

最新文章

  1. For each...in / For...in / For...of 的解释与例子
  2. Spring版本特性:Spring各个版本引入了哪些新特性?
  3. 未成年人互联网普及率达99% 腾讯等倡议加强青少年网络素养教育
  4. 解决jupyter notebook输出显示不完整问题
  5. ASP.NET与MVC架构区别总结
  6. 互联网晚报 | 12月5日 星期日 | 饿了么启用AI技术研发新菜品;搜狐将布局知识直播;《英雄联盟手游》获选苹果年度游戏...
  7. 【华为认证考试扫盲】超详细的华为认证入门基础知识,考证必看。
  8. 入门图形学:ComputeShader
  9. 或是独体字吗_独体字
  10. java 只保留字母_java编程问题,急急急!输入一个字符串,如果字符串中存在字母a的次数大于1,则只保留第一个a,...
  11. 数据结构重点选择题(高分必备)
  12. Android 应用在后台弹出提示相关的笔记1
  13. 谈谈我做技术经理的经验和教训
  14. 咕咕王小谢的C语言之路————第一章 初遇C语言 第三集 变量与常量
  15. 亲测好用的屏幕录制软件:camtasia2021 mac中文版
  16. C++实现双人枪战游戏
  17. 物联卡中心:物联卡能永久使用吗?放手机会不会被封卡
  18. 设置IE文档模式解决IE浏览器兼容性
  19. 一位ORACLE DBA大牛离职时候的过往总结
  20. 《乔布斯传》圈点(末篇)

热门文章

  1. 串口服务器与网页通信配置,串口服务器是怎么实现串口通信的
  2. 2022-03-09 Unity 3D两个场景的切换
  3. 新造车势力让华为走开
  4. 国企招聘: 中邮理财社会招聘
  5. python 通过文件头获取文件类型mimetype
  6. Nodejs创建https服务器(Windows 7)
  7. 2021最强Python学习教程,从零基础入门到精通
  8. AI绘图软件分享:Midjourney 基础教程(四)参数进阶
  9. 融媒宝入门教程(二):融媒宝如何如何做自媒体一键发布?
  10. vipjr外教给孩子“陪读”156天记录,能坚持下去的才有意义