java学习之高级语法(九)----- 数据结构

简介: java学习之高级语法(九)----- 数据结构

这里主要了解java中和集合相关的数据结构,只是简单了解一下这些常见的数据结构,不作过于深入的学习。

数据存储常用的结构有:栈、队列、数组、链表和红黑树。

栈:也称堆栈,只允许在同一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。

栈的特点:(1)先进后出

                 (2)栈的入口、出口都是栈顶

                 image.gif编辑

压栈:存元素,即把元素存储到栈的顶端位置,栈中已有元素依次向栈底方向移动一个位置。

弹栈:取元素,即把栈的顶端位置元素取出,栈中已有元素依次向栈顶方向移动一个位置。

队列

队列:简称队,只允许在表的一端进行插入,而在表的另一端进行删除。

队列的特点:(1)先进先出(就像火车过隧道一样)

                    (2)队列的入口、出口各占一侧

                    image.gif编辑

数组

数组:是有序的元素序列,数组是在内存中开辟一段连续的空间,并在此空间存放元素。

数组的特点:

     (1)查询快

            数组的地址是连续的,通过数组的首地址可以找到数组,通过数组的索引可以快速查找某一个元素

     (2)增删慢

            数组的长度是固定的,想要增加或者删除一个元素必须要创建一个新数组,把原数组的数据复制过来

链表

链表:是由一系列节点node组成,一个节点包含了一个数据域(存储数据)和两个指针域(存储地址)。

链表分为:单向链表 、双向链表

     (1)单向链表:链表中只有一条链,不能保证元素的顺序(存储元素和取出元素的顺序有可能不一致)

     (2)双向链表:链表中有两条链,有一条链是专门记录元素的顺序,是一个有序的集合

链表的特点:(1)查询慢

                              因为链表中的地址不是连续的,每次查询元素都必须从头开始查询

                     (2)增删快

                               因为链表结构增加或者删除一个元素对链表的整体结构没有影响,所以增删快

                               增加元素:只需要修改连接下个元素的地址即可

                               删除元素:只需要修改连接下个元素的地址即可

红黑树

二叉树:每个节点上最多只能有两个子节点的有序树,顶上的叫根节点,两边被称为“ 左子树 ” 和 “ 右子树 ”

                 image.gif编辑

这里说的红黑树是一种特殊的二叉树,它本身就是一颗二叉查找树,将节点插入后,该树仍然是一颗二叉查找树。

红黑树的约束:

                   (1)节点可以是红色或者黑色的

                   (2)根节点是黑色的

                   (3)叶子节点(指空节点)是黑色的

                   (4)每个红色节点的子节点都是黑色的

                   (5)任何一个节点到其每一个叶子节点的所有路径上黑色的节点数相同

红黑树的特点:查询速度快,趋近于平衡树,查询叶子节点最大次数和最小次数不能超过2倍。

相关文章
|
6天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
数据结构与算法系列学习之串的定义和基本操作、串的储存结构、基本操作的实现、朴素模式匹配算法、KMP算法等代码举例及图解说明;【含常见的报错问题及其对应的解决方法】你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
|
3天前
|
存储 Java 索引
Java中的数据结构:ArrayList和LinkedList的比较
【10月更文挑战第28天】在Java编程世界中,数据结构是构建复杂程序的基石。本文将深入探讨两种常用的数据结构:ArrayList和LinkedList,通过直观的比喻和实例分析,揭示它们各自的优势与局限,帮助你在面对不同的编程挑战时做出明智的选择。
|
6天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习(8)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
6天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之顺序表【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找等具体详解步骤以及举例说明
|
6天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
6天前
|
存储 Web App开发 算法
2024重生之回溯数据结构与算法系列学习之单双链表【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构之单双链表按位、值查找;[前后]插入;删除指定节点;求表长、静态链表等代码及具体思路详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
6天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
6天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之顺序表习题精讲【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找习题精讲等具体详解步骤以及举例说明
|
6天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构的基本概念;算法的基本概念、特性以及时间复杂度、空间复杂度等举例说明;【含常见的报错问题及其对应的解决方法】
|
7天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。