java基础数据结构查询最快_Java 数据结构快速入门
数据结构:栈
简介
栈(stack),又称堆栈,它是运算受限的线性表。
限制
栈(stack)的限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。
采用该结构的特点
1、先进后出(即:存进去的元素,要在后它后面的元素依次取出后,オ能取出该元素)。
2、栈的入口、出口的都是栈的顶端位置。
例如
子弹压进弹夹先压进去的子弹在下面,后压进去的子弾在上面,当开枪时,先弹出上面的子弹,然后才能弹出下面的子弹。
说明
栈(stack):弹夹
入栈(压栈):向弹夹中添加子弹
出栈(弹栈):子弹从弹夹中弹出来
数据结构:队列
简介
队列(queue),简称队,它同堆栈一样,也是一种运算受限的线性表。
限制
队列的限制是仅允许在表的一端进行插入而在表的另一端进行删除。
采用该结构的特点
1、先进先出(即:存进去的元素,要在后它前面的元素依次取出后,オ能取出该元素)。
2、队列的入口、出口各占一侧。
例如
小火车过山洞,车头先进去,车尾后进去;车头先出来,车尾后出来。
数据结构:数组
简介
数组(Array)是有序的元素序列,数组是在堆内存中开辟一段连实的空间,并在此空间存放元素。
采用该结构的特点
1、查找元素快
2、增删元素慢
为什么说数组查找元素快,增删元素慢
1、数组查询快:数组的地址是连续的我们通过数组的首地址可以找到数组,通过数组的素引可以快速查找某一个
2、元素增删慢:数组的长度是固定的我们想要增加/删除一个元素,必须创建一个新数组把源数组的数据复制过来
3、增删元素,会在堆内存中频繁的创建新数组、复制数组中的元素、销毁数组,导致效率低下
例如
一排出租屋,有100个房间,从001到100每个房间都有固定编号,通过编号就可以快速找到租房子的人。
数据结构:链表
简介
链表(linked、list)由一系列结点node(链表中毎一个元素称为结点)组成,结点可以在运行时动态生成。
每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储结点地址的指针域。
链表结构有单向链表与双向链表
单向链表
链表中只有一条链子,不能保证元素的顺序(存储元素和取出元素的顺序有可能不一致)
双向链表
链表中有两条链子有一条链子是专门记录元素的顺序,是一个有序的集合
说明
链表中的每一个元素也称之为一个节点
一个节点包含了一个数据源(存储数据),两个指针域(存储地址),一个指针域存储本节点的地址,一个指针域存储第一个节点的地址
采用该结构的特点
多个结点之间,通过地址进行连接。例如:多个人手拉手,每个人使用自己的右手拉住下个人的左手,依次类推,这样多个人就连在一起了。
查找元素慢:想查找某个元素,需要通过连接的节点,依次向后查找指定元素。
增删元素快:增加或删除某个元素只需修改一下连接元素之间的地址值即可
为什么说链表查询慢,增删快
查询慢:链表中地址不是连续的每次查询元素都必须从头开始查询
增删快:链表结构增加/删除一个元素对链表的整体结构没有影响,所以增删快
图形理解
每个node
单向链表node之间的连接(无序的)
双向链表node之间的连接(有序的)
假如想要增删数据,只需更改连接下一个node的地址值即可
数据额结构:红黑树
首先简单了解一下计算机中的树(如图:“下面分支的连接不是箭头,而是线”)
什么是二叉树
分支不能够超过两个的树
如:
什么是排序树/查找树
在二叉树的基础上,元素是有大小顺序的,左子树小,右子树大
如:
平衡树
左子树 = 右子树
如:
不平衡树
左子树 != 右子树
如:
红黑树
特点
趋近于平衡树,查询的速度非常的快,查询叶子节点最大次数和最小次数不能超过2倍
约束
1.节点可以是红色的或者黑色的
2.根节点是黑色的
3.叶子节点(空节点)是黑色的
4.每个红色的节点的子节点都是黑色的
5.任何一个节点到其每个叶子节点的所有路径上黑色节点数相同
例如:
java基础数据结构查询最快_Java 数据结构快速入门相关推荐
- Java基础学习总结(25)——Log4j快速入门教程
log4j是一个优秀的日志组件,基本上所有的java开发项目都会用到它.下面将自己学习的一些心得总结一下,方便以后学习. log4j在项目中都不会单独使用,至少是我写过的java项目中没有.一般来说l ...
- 面渣逆袭:Java基础五十三问,快来看看有没有你不会的
这节我们回到梦开始的地方--Java基础,其实过了萌新阶段,面试问基础就问的不多,但是保不齐突然问一下.想一下,总不能张口高并发.闭口分布式,结果什么是面向对象,说不清,那多少有点魔幻.所以赶紧来看看 ...
- java cookbook中文版_Java Client快速入门指南
适用于与Amazon S3兼容的云存储的Minio Java SDK Minio Java Client SDK提供简单的API来访问任何与Amazon S3兼容的对象存储服务. 本快速入门指南将向你 ...
- java8生成jsp页面内容组装到jsp中_JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...
接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...
- pdf python 3.7编程快速入门 潘中强_无python基础,这些书籍可以帮您快速入门。
利用Python进行数据分析> 定 价:119 元 作者:韦斯·麦金尼(Wes McKinney)著;徐敬一译 ISBN:9787111603702 出 版 社:机械工业出版社 学习Python ...
- JMeter基础使用教程及使用技巧(快速入门)
目录 前言 JMeter介绍 JMeter下载安装 JMeter快速入门 前言 本篇内容为JMeter的简单使用介绍,是基础的使用技巧,希望能帮到各位,不足之处还望多多包涵,最后感谢您的阅览. JMe ...
- (vue基础试炼_01)使用vue.js 快速入门hello world
文章目录 一.需求案例 二.案例实现 2.1. 原始js写法 2.2. 怎样使用vue.js ? 2.3. 使用vue.js 写法 三.案例vue简述? 四.案例趣味延伸 五.表达值作用及嘱咐语 一. ...
- 有没有matlab软件教程基础讲课的老师,详解MATLAB快速入门与应用之MATLAB软件教学视频...
本教程为<详解MATLAB快速入门与应用>的DVD部分,没有PDF教材, 本文件夹中提供各章范例的源程序.程序编号与书中例子的编号不完全相同,如"2.1.1-5"表示为 ...
- java stack 从1.5开始?_java数据结构与算法之栈(Stack)设计与实现
本篇是java数据结构与算法的第4篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点: 栈的抽象数据类型 栈是一种用于存储数据的简单数据结构,有点类似链表或者顺序表(统称线性表),栈与线 ...
最新文章
- Oh My Zsh终端工具
- python在线-python+在线
- 聊聊Servlet、Struts1、Struts2以及SpringMvc中的线程安全
- Android中Activity总结
- 软工作业6--用户体验(案例分析)
- java = 优化_Java9系列第7篇:Java.util.Optional优化与增强 - 字母哥博客 - 博客园
- P3168-[CQOI2015]任务查询系统【主席树】
- atitit 知识压缩的总结 学习方法总结v2 t55.docx 目录 1.1. 压缩目的	1 1.2. 压缩分类 无损压缩 有损压缩	1 2. 功能指标	2 2.1. 压缩比:有损压缩一般1
- [FPGA] 三位四选一数据选择器
- ARX——一种开源的数据匿名软件的介绍
- java编程题代做,代做COMP 2406作业、代写Java语言作业、代做programming作业、代写Java程序实验作业...
- 词向量与词意-Glo Ve
- c语言 求单元格中间某段字符串,EXCEL怎么取单元格里面的的值的中间某些字符...
- writev遇到非阻塞IO
- 写代码也要讲规矩——SLA
- 北大计算机专硕学费,北京大学专业硕士学费被曝高达2.2万元/年
- 文创雪糕火出圈!是真内卷还是真搞笑?
- 从零开始的异界生活(偏了)从零开始搭建lamp服务ECShop,简单快速
- BZOJ 4668 冷战
- phython 错题