Java#数据结构----2

news2024/11/25 8:23:59

目录

一.数据结构(树)

二.二叉树(任意节点的度<=2)

二叉查找树又称为二叉排序树/二叉搜索树

平衡二叉树

平衡二叉树的旋转机制

三.红黑树


一.数据结构(树)

基本概念:

度: 每一个节点的子节点数量

树高: 树的总层数

根节点: 最顶层的节点

左子节点: 左下方的节点

右子节点: 右下方的节点

根子节点的左子树:看图

 根子节点的右子树:看图

 

二.二叉树(任意节点的度<=2)

二叉查找树又称为二叉排序树/二叉搜索树

特点:

(1)每个节点上最多有两个子节点

(2)任意节点左子树上的值都小于当前节点

(3)任意节点右子树上的值都大于当前节点

添加节点的规则:

小的存左边, 大的存右边, 一样的不存

遍历方式:

(1)前序遍历: 当前节点, 左子节点, 右子节点

(2)中序遍历: 左子节点, 当前节点, 右子节点

(3)后序遍历: 左子节点, 右子节点, 当前节点

(4)层序遍历: 一层一层的去遍历

平衡二叉树

规则: 任意节点左右子树高度差不超过1

平衡二叉树的旋转机制

规则1: 左旋

规则2: 右旋

触发时机: 当添加一个节点之后,该数不再是一颗平衡二叉树

比较简单的左旋

步骤:(1)以不平衡的点作为支点(从添加点开始,不断往父类找不平衡的点)

(2)把节点左旋降级,变成左子节点

(3)晋升原来的右子节点

有点难的左旋

步骤:(1)以不平衡的点作为支点

(2)将根节点的右侧往左拉

(3)原先的右子节点变成新的符节点,并把多余的左节点出让,给已经降级的根节点当右子节点

 右旋的话也差不多 

左左: 当根节点左子树的左子树有节点插入,导致二叉树不平衡      (一次右旋解决)

左右: 当根节点左子树的右子树有节点插入,导致二叉树不平衡      (先局部左旋,再整体右旋)

右右: 当根节点右子树的右子树有节点插入,导致二叉树不平衡      (一次左旋解决)

右左: 当根节点右子树的左子树有节点插入,导致二叉树不平衡      (先局部右旋,再整体左旋)

三.红黑树

是二叉查找树: 满足小的在左边, 大的在右边

但高度不是平衡的

条件:特有的红黑规则

红黑规则:

(1)每一个节点或是红色的,或者是黑色的

(2)根节点必须是黑色

(3)如果一个节点没有子节点或者父节点,则该节点想要的指针属性值为Nil,这些Nil为叶节点, 每个叶节点(Nil)是黑色的

(4)如果某一个节点是红色, 那么它的子节点必须是黑色(不能出现两个红色节点相连)

(5)对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点

 

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

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

相关文章

【Java八股文总结】之面试题(二)

文章目录面试题一、几种锁的区别1、synchronized 和ReentrantLock的区别二、Java高级1、反射1、反射的应用场合2、Java反射API3、反射使用步骤&#xff08;获取Class 对象、调用对象方法&#xff09;4、获取Class对象的3种方法5、创建对象的两种方法 newInstance(&#xff09;2…

数据结构和算法——基于Java——3.1链表(单链表)

理论补充 概念:链表是以节点的方式存储&#xff0c;是链式存储 特性 每个节点包含一个data数据域&#xff08;存放数据&#xff09;&#xff0c;一个next域&#xff08;指向下一个节点&#xff09;链表分带头结点和不带头节点&#xff08;单链表带头&#xff09;链表的内存分…

移动端开发:WebView介绍和使用、JSBridge等

Android应用层的开发有几大模块&#xff0c;其中WebView是最重要的模块之一。Android系统的WebView发展历史可谓一波三折&#xff0c;系统WebView开发者肯定费劲心思才换取了今天的局面——应用里的WebView和Chrome表现一致。 webview是什么&#xff1f; WebView是一种控件&a…

计算机的存储器(详解)

文章目录一&#xff0c;存储器&#xff08;一&#xff09;存储器的分类1) 根据功能和特性分类2) 根据存储容量和所在位置分类二&#xff0c;寄存器&#xff08;一&#xff09;寄存器的类别三&#xff0c;高速缓冲存储器&#xff08;一&#xff09;高速缓存的类别1) 一级高速缓存…

QT-MySQL QSqlDatabase: QMYSQL driver not loaded

使用Qt连接mysql数据库&#xff0c;遇到了一个问题&#xff0c;就是QT5.14.1版本在连接MySQL数据库时候&#xff0c;提示驱动加载失败&#xff0c;“QMYSQL driver not loaded” 编程环境&#xff1a;   Qt5.14.1,编译器是MSVC2017_64,是64位的。   mysql-8.0.30-winx64&am…

场馆系统的数据分析功能怎么样?

在大数据时代&#xff0c;对人们的消费数据进行分析&#xff0c;对企业发展至关重要。对于正在向智能化靠近的运动球馆来说&#xff0c;收集数据、分析数据来了解和改善场馆的运营已经成了一个新的趋势。 场馆系统组建了数据管理分析模块&#xff0c;让球馆通过信息化管理&…

【IoT】如何快速了解一个行业?如何做市场洞察?

如果要做一个新的事情&#xff0c;往往我们也不知道未来会怎么样。 我们准备去做一个事情之前一般都是会有个假设&#xff0c;比方说我们学习一项新技术&#xff0c;我们假设学习了以后能够给未来的生活带来提升&#xff0c;能给自己创造更多的机会&#xff0c;这就是个假设。 …

C++求解汉明距离

目录汉明距离介绍汉明距离应用解法1&#xff1a;Brian Kernighan算法解法2解法3汉明距离介绍 leetcode 461 汉明距离&#xff0c;难度&#xff1a;简单 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。 给你两个整数 x 和 y&#xff0c;计算并返回…

[附源码]计算机毕业设计Springboot电影推荐网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

APS软件的技术指标与特色

企业可能经常会因为无法掌握生产制造现场的实际产能状况及物料进货状况&#xff0c;导致物料及产能规划与现场详细作业排程难度增大&#xff0c;从而采取有单就接的接单政策与粗估产能的生产排程方式。这种方式就可能导致企业的生产状况频发&#xff1a;在提高对顾客的服务水平…

【Android App】实战项目之实现你问我答的智能语音机器人(超详细 附源码和演示视频)

需要全部代码请点赞关注收藏后评论区留言私信~~~ 一、需求描述 想必大家都见过商场里的智能语音机器人&#xff0c;你对它提问时它可以自动回答你的问题&#xff0c;接下来我们也实现这样一个机器人&#xff0c;它依靠语音技术完成问询服务 基本功能如下 1&#xff1a;接收人们…

锦江酒店(中国区):在变革中拥抱未来 实现高质量发展

过去十年&#xff0c;中国酒店业经历了规模急剧扩张的黄金时期。后疫情时代&#xff0c;酒店行业正在发生深刻变革。 2022年&#xff0c;面对诸多外部不确定性&#xff0c;国内企业均感受到挑战。如何做到在国内大循环为主体、国内国际双循环相互促进的全新格局下高质量发展&a…

Java+JSP基于ssm共享充电宝管理系统-计算机毕业设计

项目介绍 本共享充电宝管理系统主要包括系统用户管理模块、维护人员模块、投放信息管理、区域信息管理、使用记录管理、登录模块、和退出模块等多个模块,系统采用SSM(springMvcspringMybatis)框架进行开发,本系统使用mysql,开发工具支持eclipse idea myeclipse等主流开发工具i…

点云库PCL学习——点云的格式、PCD文件的打开和显示

1、主要参考 (1)格式说明&#xff1a; 点云库PCL学习——点云的格式、PCD文件的打开和显示 ROS知识&#xff1a;点云文件.pcd格式_无水先生的博客-CSDN博客_pcd文件 &#xff08;2&#xff09;点云滤波&#xff0c;对nan的滤波 Python点云数据处理(三)滤波与RANSAC分割 - …

Bootstrap学习从一个模板开始

开源代码&#xff1a; BootstrapDash/celestialAdmin-free-admin-template: Celestial Free Bootstrap Admin Dashboard Template (github.com)https://github.com/BootstrapDash/celestialAdmin-free-admin-template 作为一个新手&#xff0c;知识还停留在简单的HTMLJSCSS的h…

2022王道计组 chap1 计算机系统概述

2022王道计组 chap1计算机系统概述 1.1 计算机发展历程 本节思维导图 知识点 [计算机系统] 计算机系统 硬件 软件 计算机性能的好坏取决于“软”“硬”件功能的总和 硬件&#xff1a;计算机的实体&#xff0c;如主机、外设等 发展变化&#xff1a;见思维导图 软件&#xf…

智能计量系统配套设备有哪些

智能计量系统配套设备 地磅区域安装配套设备包含&#xff1a;微波定位仪、视频监控、道闸、LED显示屏、车号识别、语音对讲、音响设备、红绿灯、刷卡机箱、雷达、补光灯。 硬件设备 1、微波定位仪&#xff1a;通过微波定位仪设备&#xff0c;可以判断车辆是否完全上磅。 2、…

【Java-Web】利用Session和Filter进行权限管理

目录 1.Cookie 概念 优势和不足 2.Session 3.用Session实现登陆 概念 代码 4.使用Filter实现过滤 在使用浏览器的时候&#xff0c;浏览器如何保存我们的个人信息呢&#xff1f;有两种方法&#xff0c;一个是Cookie&#xff0c;一个是Session&#xff0c;区别在于&#x…

详解设计模式:适配器模式

适配器模式&#xff08;Adapter Pattern&#xff09;又称为变压器模式&#xff0c;是 GoF 的 23 种设计模式中的一种结构型设计模式。适配器模式 的功能是将一个类的接口变成客户端所期望的另一种接口&#xff0c;从而使原本因接口不匹配而导致无法在一起工作的两个类能够一起工…

双十二选什么牌子的led台灯质量好?2022最新几款真的能护眼的台灯推荐

说到led台灯&#xff0c;那么护眼灯必然是不能忽视的存在&#xff0c;现在市面上的大多数护眼台灯都是使用led灯珠作为发光源&#xff0c;这不仅是因为其高效节能、绿色环保的特性&#xff0c;更重要的是具有很多种保护眼睛的效果。 比起传统的卤素灯或者白炽灯&#xff0c;led…