亲宝软件园·资讯

展开

Java数据结构 详解Java集合中的基本数据结构

Liziba 人气:1
想了解详解Java集合中的基本数据结构的相关内容吗,Liziba在本文为您仔细讲解Java数据结构的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Java数据结构,java集合,下面大家一起来学习吧。

集合中三大数据结构

在这里插入图片描述

数组

在这里插入图片描述

链表(双向链表)

在这里插入图片描述

树(Java中二叉树特性)

在这里插入图片描述

存在问题:树可以认为是介于数组和链表二者之间的一种数据结构,拥有较快的查询速度同时拥有较快的插入和删除速度。但是在树出现极端或严重的不平衡情况下会导致效率低下

在这里插入图片描述

基于红黑树折中解决二叉树不平衡带来的效率低下问题

红黑树

在这里插入图片描述

红黑树通过什么自平衡

左旋:以某个节点作为支点(旋转节点),其右子节点变为旋转节点的父节点,右子节点的左节点变为旋转节点的右子节点,左子节点保持不变

在这里插入图片描述

右旋:以某个节点作为支点(旋转节点),其左子节点变为旋转节点的父节点,左子节点的右子节点变为旋转节点的左子节点,右子节点保持不变

在这里插入图片描述

变色:节点的颜色由红色变为黑色或者黑色变为红色

在这里插入图片描述

红黑树插入场景

1、红黑树为空

1.1 插入节点作为根节点并把节点设置为黑色

2、插入节点的父节点为黑节点\

2.1 直接插入

3、插入节点的父节点为红节点

3.1 叔叔节点存在且为红节点

3.2 叔叔节点不存在或者叔叔节点为黑色

3.2.1 P节点是PP节点的左节点

3.2.1.1 插入节点是P节点的左节点

3.2.1.2 插入节点是P节点的右节点

3.2.2 P节点是PP节点的右节点

3.2.2.1 插入节点是P节点的右节点

3.2.2.2 插入节点是P节点的左节点

PP节点左旋

3.2.2.2 插入节点是P节点的左节点

在这里插入图片描述

加载全部内容

相关教程
猜你喜欢
用户评论