首页 > 编程语言 >【JavaSE】数据结构(栈、队列、数组、链表)

【JavaSE】数据结构(栈、队列、数组、链表)

时间:2023-12-09 17:14:59浏览次数:43  
标签:队列 链表 数组 增删 JavaSE 数据结构 节点

什么是数据结构?

数据结构是计算机底层存储、组织数据的方式,是指数据相互之间是什么方式排列在一起的

常见的数据结构

栈、队列、数组、链表
二叉树、二叉查找树、平衡二叉树、红黑树
哈希表

特点:先进后出

队列

特点:先进先出

数组

特点:有索引,内存连续
优点:查询速度快O(1)
缺点:增删速度慢O(n),涉及修改大批量的元素位置

链表

分类:单向链表和双向链表
特点:每个节点都是独立对象,在内存中不连续,每个节点包含数据值+下一个节点的内存地址
缺点:查询很慢,需要从头开始查询
优点:增删相对数组快,增删一个元素涉及修改的元素最多三个

标签:队列,链表,数组,增删,JavaSE,数据结构,节点
From: https://www.cnblogs.com/Eve7Xu/p/17884035.html

相关文章

  • 【JavaSE】数据结构(树:二叉查找树、平衡二叉树、AVL树、红黑树)
    树度:每个节点的子节点数量树高:树的总层数根节点:入度为0的节点二叉树每个节点最多有两个子节点二叉查找树任意节点左子树上的节点都小于当前节点,右子树上的节点都大于当前节点平衡二叉树任意节点的左右子树的高度差不超过1AVL树AVL树是一种平衡二叉树,得名于其发明者的......
  • 【JavaSE】数据结构-哈希表(HashSet/HashMap底层哈希表详解,源码分析)
    哈希表结构JDK8版本之前:数组+链表JDK8版本及之后:数组+链表+红黑树哈希表HashMapput()方法的添加流程创建HashSet集合时,构造方法中自动创建HashMap集合;HashMap空参构造方法会创建一个默认长度为16,默认加载因子为0.75的数组,数组名为table(tips:实际上,HashSet对象创建后,第......
  • Redis数据结构2:REDIS_STRING(SDS)
    REDIS_STRING(SDS)SDS全称SimpleDynamicString(简单动态字符串),是专为Redis设计的简易字符串实现。Redis并未采用C语言传统字符串char*,而是自己设计了一套字符串实现标准。传统字符串的缺陷C语言字符串实际上就是一个以'\0'结尾的字符数组。例如:char*myName="ErickRen";......
  • 【JavaSE】可变参数
    可变参数可变参数用在形参中可以接收多个数据可变参数的格式:数据类型...参数名称可变参数的特点:方便,可以不传输参数,可以传输一个或者多个,也可以传输一个数组可变参数在方法内部本质上就是一个数组注意事项:一个形参列表中可变参数只能有一个可变参数必须放在形参列表的......
  • 数据结构
    数据结构一、STL简介标准模板库,使用时只需要调用别人写好的程序,便能实现相应的功能。需要注意的是,使用STL有时代码的运行效率比较低,在信息学竞赛中使用STL需要关注代码效率问题。STL组件主要包含迭代器,容器和算法三部分。⦁迭代器要访问容器中的元素需要通过迭代器来进行。......
  • Redis数据结构分析1:Redis对象
    Redis数据结构分析本篇将涉及C语言,请确保您拥有C语言相关基础与计算机底层知识RedisObject(robj)robj是Redis对象的起点,所有的数据结构都封装到了robj之中。其源码如下:structredisObject{unsignedtype:4;unsignedencoding:4;unsignedlru:LRU_BITS;......
  • 数据结构与算法----------3
    队列队列也是一种受限制的线性表,只能在一端进行插入,在另一端进行删除。当然也有一种特殊的队列,名叫双端队列,也就是一段既可以插入也可以删除,在另一端也可以插入和删除。这就是双端队列。队列的顺序实现(非环形数组)代码实现//队列的顺序实现(非环形数组)#define_CRT_SECUR......
  • 数据结构与算法---------2
    栈栈是一个具有一定操作约束的线性表,只能在一端(栈顶,top)做插入和删除。栈的顺序实现//栈的顺序实现#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#include<time.h>#include<stdbool.h>#defineuun......
  • 【LeetCode-中等-链表】两数相加
    这是个关于链表的题目,以前在C#中写代码时,对链表接触比较少,所以刚好接这个题目来更好的熟悉一下链表题目大概是这样的,给你两个非空的链表,表示两个非负的整数.它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字 =》首先我们来理解这句话是什么意思我们来看......
  • [LeetCode Hot 100] LeetCode23. 合并K个升序链表
    题目描述思路:优先队列使用优先队列这个数据结构,对于这个数据结构,我们不用去管内部是如何实现的,我们只要知道有这么一种数据结构能帮助我们将一堆数据塞到优先队列这一个黑盒中,然后我们可以获取这堆数中最小的值或者最大的值。代码一:/***Definitionforsingly-linkedlis......