查找-树表的查找-平衡二叉树

news2024/11/29 10:46:12

目录

  • 平衡二叉树得定义
  • 插入操作
  • 平衡二叉树的平衡调整方法
  • 查找效率分析

平衡二叉树得定义

平衡二叉树(Balanced Binary Tree),简称平衡树(AVL树),平衡二叉树或者空树,或者是具有以下特征得二叉树排序是:

  • 左子树与右子树得深度之差得绝对值不超过1;
  • 左子树和右子树也是平衡二叉树。

平衡因子(BF) = 左子树高度-右子树的高度
平衡因子的值只可能是 -1,0或1。
最小不平衡子树:插入结点最近且平衡因子绝对值超过1的祖先结点

在这里插入图片描述

//平衡二叉树结点
typedef struct AVLNode{
    int key;     //数据域
    int balance; //平衡因子
    struct AVLNode *lchild; 
    struct AVLNode *rchild;
}AVLNode,* AVLTree;


插入操作

插入新的结点
查找路径上所有结点都有可能受到影响
从插入点往回找到第一个不平衡结点,调整以该结点为根的子树(最小不平衡子树)

平衡二叉树的平衡调整方法

LL 在A的左孩子的左子树中插入导致不平衡

RR 在A的右孩子的右子树中插入导致不平衡

LR 在A的左孩子的右子树中插入导致不平衡

RL 在A的右孩子的左子树中插入导致不平衡

查找效率分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1187633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

柯桥英语培训,商务英语学习,常用口语

欢迎各位小伙伴来到 ——“每个单词我都认识,但我又不认识整个短语”的时候啦! “dog”是“狗” “breakfast”是早餐 那“a dogs breakfast”是“狗的早餐”? 狗听了都摇头。 a dogs breakfast是一句英文俚语,指的是无序、混…

2010年09月15日 Go生态洞察:探索Go Playground的新颖之处

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

异地传输大文件最快且安全稳定的办法

无论是企业还是个人,都会有传输大文件的需求,特别是在异地时,工作中最典型的就是项目资料、合同文档、视频素材等都是有一定的及时性的,那么在传输过程中,没有好的传输方式会间接性的影响到整体工作的进行,…

假脱机技术

一、脱机技术 二、引入假脱机技术 1.相关概念抽象 2.总体结构 三、实现过程

撕开AEB的「遮羞布」

如果,以NOA为代表的高阶智驾,考量的更多是在车辆运动条件下,如何更好的规避障碍物,并实现平稳的驾乘体验;那么,以AEB代表的主动安全功能,则需要更多考量「安全」刹停。 根据此前公安部发布的公开…

【ASP.NET】检验科实验室信息管理系统源码

LIS是全院信息化建设的一个重要组成部分,其主要功能是将检验的实验仪器传出的检验数据经分析后,生成检验报告,通过网络存储在数据库中,使医生能够方便、及时的看到患者的检验结果,LIS已经成为现代化医院管理中必不可少…

【h5 uniapp】 滚动 滚动条,数据跟着变化

uniapp项目 需求: 向下滑动时,数据增加,上方的日历标题日期也跟着变化 向上滑动时,上方的日历标题日期跟着变化 实现思路: 初次加载目前月份的数据 以及下个月的数据 this.getdate()触底加载 下个月份的数据 onReach…

17 _ 跳表:为什么Redis一定要用跳表来实现有序集合?

上两节我们讲了二分查找算法。当时我讲到,因为二分查找底层依赖的是数组随机访问的特性,所以只能用数组来实现。如果数据存储在链表中,就真的没法用二分查找算法了吗? 实际上,我们只需要对链表稍加改造,就可以支持类似“二分”的查找算法。我们把改造之后的数据结构叫做…

专业英国TOP1|设计学老师CSC公派伯恩茅斯大学访学

F老师的研究方向侧重于数字设计,比较小众,英国知名大学中涉及该专业的院系不是很多,且只有一个多月的申请时间。我们的申请效率很高,陆续得到英国多个高校的邀请函,最终其选定了伯恩茅斯大学申报CSC。伯恩茅斯大学的动…

对话刘继升:用户只管去“野”,剩下的交给福特纵横

在云南首家Ford Beyond福特纵横纵享空间的盛大开业典礼上,福特再次加速了其福特纵横网络建设,为越野爱好者带来更多乐趣。这一举措标志着福特正积极构筑一个全新的越野生态系统,为越野爱好者提供更多愉快的体验,同时打造一个充满乐…

Webpack--动态 import 原理及源码分析

前言 在平时的开发中,我们经常使用 import()实现代码分割和懒加载。在低版本的浏览器中并不支持动态 import(),那 webpack 是如何实现 import() polyfill 的? 原理分析 我们先来看看下面的 demo function component() {const btn docume…

5个WebGIS功能小技巧

我们在《为什么要研发WebGIS系统?》一文中,分享为什么要研发水经微图Web版的WebGIS系统。 这里,我们再为你分享一下水经微图Web版中的几个功能小技巧。 批量修改标注名称 在工具栏中选择“框选”工具,框选需要修改标注的要素。 …

自定义表单模型小程序源码系统 带完整的部署教程

大家好啊,今天源码小编来给大家分享一款自定义表单模型小程序源码系统。在数字化时代,信息收集和处理显得尤为重要。无论是企业还是个人,都需要通过表单来收集、整理、分析各种信息。但是,传统的表单构建方式往往需要编写大量的代…

电脑如何截屏?一起来揭晓答案!

在数字时代,截屏已经成为我们日常生活和工作中的必备技能。无论是为了捕捉有趣的网络瞬间,保存重要信息,还是为了协作和教育,电脑截屏都是一个强大而方便的工具。本文将介绍三种电脑如何截屏的方法,以满足各种需求&…

景联文科技助力金融机构强化身份验证,提供高质量人像采集服务

随着社会的数字化和智能化进程的加速,人像采集在金融机构身份认证领域中发挥重要作用,为人们的生活带来更多便利和安全保障。 金融机构在身份验证上的痛点主要包括以下方面: 身份盗用和欺诈风险:传统身份验证方式可能存在漏洞&am…

IS420ESWBH3A GE 附加配置文件和I/O组件中的单独标签

IS420ESWBH3A GE 附加配置文件和I/O组件中的单独标签 为CompactLogix、MicroLogix和ControlLogix等以太网/IP兼容型PLC用户提供了一种节省自动化机器空间、资金和布线的新方法。ClearLink提供4个运动控制轴、一个串行端口、13个可配置的数字和模拟I/O点以及可扩展的I/O。tek …

Spring源码系列-框架中的设计模式

简单工厂 实现方式: BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。 实质: 由一个工厂…

Linux常用命令——cancel命令

在线Linux命令查询工具 cancel 取消已存在的打印任务 补充说明 cancel命令用于取消已存在的打印任务。 语法 cancel(选项)(参数)选项 -a:取消所有打印任务; -E:当连接到服务器时强制使用加密; -U:指定连接服务器…

LeetCode |142. 环形链表 II

LeetCode |142. 环形链表 II OJ链接 一个指针从相遇点开始走,一个指针从头开始走,它们会在入口点相遇~~ struct ListNode *detectCycle(struct ListNode *head) {struct ListNode* slow,*fast;slow fast head;while(fast && fast->next…

扬帆起航正当时——远航汽车下线仪式在山西运城成功举办

11月8日,“智赢未来 远航汽车——远航汽车下线仪式”在山西省运城市大运集团新能源生产基地成功举办。运城市委书记丁小强、市长储祥好,以及来自省、市、区各级政府领导,远航汽车供应商代表、客户代表、全国主流媒体,大运集团各级…