【JAVA学习之路 | 进阶篇】浅谈数据结构

简介: 【JAVA学习之路 | 进阶篇】浅谈数据结构

1.前言

数据结构,就是一种程序设计优化的方法论,研究数据的逻辑结构和物理结构以及他们之间的关系,并对这种结构定义相应的运算,目的是加快程序的执行速度,减少占用的内存空间.

2.研究对象1--数据间的逻辑关系

数据的逻辑结构指反应数据元素之间的逻辑关系,而与数据的存储无关.是独立与计算机的.


  • 集合结构 : 数据结构中的元素除了同属一个集合的关系外,无其他关系.集合元素之间无逻辑关系.
  • 线形结构 : 数据结构中的元素存在一对一的关系.除了首元素与末尾元素外(首元素有后继,尾元素有前驱),其他元素都有前驱和后继.
  • 树形结构 : 数据结构中的元素存在一对多的相互关系.比如家谱.
  • 图形结构 : 数据结构中的元素存在多对多的相互关系.比如高铁网.

3.研究对象2--数据的存储结构

数据的存储结构包括数据元素的表示和关系的表示.数据的存储结构是逻辑结构用计算机语言的实现,依赖于计算机语言.

(1). 顺序结构 :

  • 顺序结构就是使用一组连续的存储单元依次存储逻辑上相邻的元素.
  • 优点 : 只需要申请存放数据本身的内存空间即可.支持索引访问,也可以实现随机访问.
  • 缺点 : 必须静态分配连续的内存空间,内存空间的利用率较低.删除与插入元素可能需要移动大量元素,效率较低.

(2). 链式结构 :

  • 不使用连续的存储空间存放结构的元素.而是为每个元素构建一个结点.结点中除了存放数据外(数据域),还存放指向下一个节点的指针(指针域).
  • 优点 : 不采用连续的存储空间,空间利用率较高,克服顺序存储结构预支元素个数的缺点.插入或删除元素时,不需要移动大量元素.只是改变指针的指向即可.
  • 缺点 : 需要额外的空间来表达数据之间的逻辑关系.不支持下标访问和随机访问.只能从头到尾遍历访问.

(3). 索引结构 :

  • 除了建立存储结点的信息外,还需要建立附加的索引表来记录每个元素结点的地址.索引表由若干索引项构成.索引项一般格式(关键字 : 地址).
  • 优点 : 用结点的索引号来确定结点的存储位置,检索速度较快.
  • 缺点 : 增加了附加的索引表,会占用较多的内存空间.在增加和删除数据时需要修改索引表,因而会耗费较多时间.

(4). 散列结构 :

  • 根据元素的关键字直接计算该元素的存储地址,又称为哈希存储.
  • 优点 : 检索,插入,删除结点速度快.
  • 缺点 : 不支持排序,一般比用线性表存储需要更多的内存空间,并且记录的关键字不能重复.
相关文章
|
17天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
数据结构与算法系列学习之串的定义和基本操作、串的储存结构、基本操作的实现、朴素模式匹配算法、KMP算法等代码举例及图解说明;【含常见的报错问题及其对应的解决方法】你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
|
8天前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
27 6
|
14天前
|
存储 Java 索引
Java中的数据结构:ArrayList和LinkedList的比较
【10月更文挑战第28天】在Java编程世界中,数据结构是构建复杂程序的基石。本文将深入探讨两种常用的数据结构:ArrayList和LinkedList,通过直观的比喻和实例分析,揭示它们各自的优势与局限,帮助你在面对不同的编程挑战时做出明智的选择。
|
10天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
17天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习(8)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
17天前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之顺序表【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找等具体详解步骤以及举例说明
|
17天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
17天前
|
存储 Web App开发 算法
2024重生之回溯数据结构与算法系列学习之单双链表【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构之单双链表按位、值查找;[前后]插入;删除指定节点;求表长、静态链表等代码及具体思路详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
17天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
17天前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之顺序表习题精讲【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找习题精讲等具体详解步骤以及举例说明