数据结构分为:线性数据结构、非线性数据结构

线性数据结构包括:数组、线性表、栈、队列、串

非线性数据结构包括:多维数组、集合、树、Hash

1、数组

在Java中常用的数组util有String[],int[],ArrayList,Vector,在这些util中ArrayList是非线程安全的,Vector是线程安全的,方法同步,在ArrayList中封装了一些数组的基本操作。
数据这种数据结构是通过下标进行操作的,因此查询 效率直接通过下标查询,效率很高,但是 插入操作时后面的元素需要向后移动 一位。因此插入 操作效率比较低,相同的对于删除 操作,删除 元素时也 需要元素向前移动一位,因此效率也比较低。

2、线性表

线性表的存储 结构分为顺序存储和链表存储,顺序存储中元素是连续的,链表存储是不连续 ,但是链表上的每个节点 都知道自己的下一个节点是谁,以及上一个 节点 是谁,具体用 Node来实现。常见的线性表有 LinkedList、单链表、双向链表、循环链表。

对于线性表的操作方法,在线性表中插入的方法只需要改变 前后两个节点即可,因此插入效率比较高。在 线性表中查询某个元素 时需要遍历该元素之前的所有元素才能查找到该元素,因此查询效率 比较低。

3、栈

对于栈来说,最主要的实现策略是先进后出,所以常用的方法有push(压栈)、pop(出栈)。
同时对于Java的jvm中也实现了此 数据结构 ,jvm中的线程栈,通过线程栈保证了线程的执行顺序。

4、队列

队列是只允许在队头、队尾进行 操作,因此队列 的基本操作 方法有:add()、remove()、poll()等。

5、串

是由N个字符组成的优先序列。在Java里面就是指String,而String里面是由chat[]来进行储存。

数据结构(一)线性数据结构相关推荐

  1. 数据结构:线性数据结构(1)-栈(栈,队列,deques, 列表)

    栈,队列,deques, 列表是一类容器,他们数据项之间的顺序由添加或删除的顺序决定,一旦一个数据项被添加,它相对于前后元素一直保持该位置不变.注入此类的数据结构称为线性数据结构. 栈 栈(栈,队列, ...

  2. 数据结构:线性数据结构(3)-deques(栈,队列,deques, 列表)

    deque(也称为双端队列)是与队列类似的项的有序集合.即使 deque 可以拥有栈和队列的许多特性,它不需要由那些数据结构强制的 LIFO 和 FIFO 排序.这取决于你如何持续添加和删除操作. 1 ...

  3. 数据结构:线性数据结构(2)-队列(栈,队列,deques, 列表)

    队列:FIFO 1.队列的抽象数据类型 队列抽象数据类型由以下结构和操作定义.如上所述,队列被构造为在队尾添加项的有序集合,并且从队首移除.队列保持 FIFO 排序属性.队列操作如下: Queue() ...

  4. 数据结构:线性数据结构(4)-列表(栈,队列,deques, 列表)

    一.列表 1.1列表的抽象数据类型 列表是项的集合,其中每个项保持相对于其他项的相对位置.无序列表的结构是项的集合,其中每个项保持相对于其他项的相对位置.下面给出了一些可能的无序列表操作. List( ...

  5. python数据结构和算法 时间复杂度分析 乱序单词检测 线性数据结构 栈stack 字符匹配 表达式求值 queue队列 链表 递归 动态规划 排序和搜索 树 图

    python数据结构和算法 参考 本文github 计算机科学是解决问题的研究.计算机科学使用抽象作为表示过程和数据的工具.抽象的数据类型允许程序员通过隐藏数据的细节来管理问题领域的复杂性.Pytho ...

  6. 线性数据结构之队列(Queue)

    一.队列(Queue) 队列是一种用来存储数据的数据结构 , 与链表和栈类似 , 数据到达的次序是队列的关键 , 类似于生活中我们在排队购买东西时 , 第一个人是队首 , 最后一个人是队尾 , 第一个 ...

  7. 线性数据结构和非线性数据结构(java版)

    文章目录 线性数据结构和非线性数据结构 数据结构 非线性结构 稀疏Sparsearray 数组 队列 数组模拟队列 数组模拟环形队列 链表 单链表 双向链表 约瑟夫问题 栈 数组模拟栈 使用栈完成表达 ...

  8. python线性表和队列_[笔记]python数据结构之线性表:linkedlist链表,stack栈,queue队列...

    python数据结构之线性表 python内置了很多高级数据结构,list,dict,tuple,string,set等,在使用的时候十分舒心.但是,如果从一个初学者的角度利用python学习数据结构 ...

  9. c语言用两个栈构造队列伪码,数据结构习题线性表栈队列.doc

    数据结构习题线性表栈队列 线性表(58) 1. 在单链表.双链表和单循环链表中,若仅知道指针p指向某结点,不知道头指针,能否将结点*p从相应的链表中删去?若可以,其时间复杂度各为多少? 2.设线性表的 ...

  10. 【Java数据结构】线性表

    线性表 线性表是最基本.最简单.也是最常用的一种数据结构. 线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而 ...

最新文章

  1. 指针空间的申请与释放
  2. 【Android学习笔记】设置App启动页
  3. java 通用取得 系统硬件信息及 jvm 信息的 jar 包 oshi-core
  4. linux读conf文件格式,CONF 文件扩展名: 它是什么以及如何打开它?
  5. Microsoft Team Foundation Server 2010安装指南
  6. 笔记本中美化代码的方法
  7. 《领域驱动设计》第二部分:模型驱动设计的构造块 第四章:分离领域 阅读笔记...
  8. js初步简单的编程代码
  9. labelme实例分割_GitHub:图像分割最全资料集锦
  10. 论__AlertDialog自定义布局回调修改的正确方式
  11. rabbitmq的下载与安装windows-64
  12. tablesample oracle,Hive DDL 内部表外部表 分区 分桶 行格式 存储文件格式 概述
  13. ASP.NET Core DI 手动获取注入对象
  14. IoT实时数据可视化方案(进阶版):Worldmap Panel使用详解及使用Node-RED进行流程管理...
  15. php-openssl降级,openssl升级降级
  16. myeclipse10破解找不到common文件夹的问题
  17. 怎么把mov视频转换成mp4格式
  18. Python爬虫,数据可视化之matplotlib初步--制作一个高楼高度的条形统计图全思路
  19. mysql(update)
  20. Python 线程同步的三种方式

热门文章

  1. OpenHarmony【兼容性测试套件】【分布式数据】测试套件编写历程
  2. 正则表达式 Pattern 、Matcher
  3. 跳转输入法界面以及弹出输入法选择框
  4. 用spark分析北京积分落户数据,按用户所在单位分析
  5. 职中选什么专业好_初中毕业后上职高选什么专业好?
  6. 【Python推荐】惊呆了,某程序员居然用字符画打开了《阴阳师》、《动漫美女》......
  7. xbox可以录视频声音吗_什么是Xbox Game Pass,值得吗?
  8. 【JVM】JVM07(类加载阶段详细解析)
  9. 免安装Oracle连接数据库(odbc驱动)
  10. 图同构领域一些专业术语