数据结构-线性表数据结构(数组、队列、栈、链表)

一:数组
数组:是一种线性表数据结构。它用一组连续的内存空间来存储一组具有相同类型的数据。

​从数组的定义中我们可以找到2个关键点:1:线性表 2:连续的内存和相同的数据类型 。

线性表:数据排列成像一条线一样的结构,数据最多只有前后2个方向。类型的还有链表、队列等

数组的这俩个关键字也正好决定了数组的特性:随机访问 带来的弊端也很容易知道 为了保证其‘’连续的内存‘’删除和插入需要进行大量的数据搬移工作。

二:链表
​ 链表:是一种线性表数据结构。它可以是不连续的内存空间。

​ 链表和数组的区别在于:链表可以是零散的内存块,通过指针将这些内存库串联起来。

从链表的描述中我们也很容易得出链表的特性:容易插入和删除,查询相对耗时。

​ 链表中指针将内存串联方式的不同,链表的结构五花八门,我们常用的链表结构主要包括: 单链表、双向链表、循环链表。

  • 单链表

我们把内存块称为链表的 结点 ,为了将所有的结点串联起来,结点除了存储数据外 还需要存储指向下个结点的地址,我们把记录下个地址的指针叫做 后继指针next.

​对于单链表的第一个结点与最后一个结点是比较特殊的。我们一般将第一个结点称为头结点,把最后一个结点称为尾结点。其中头结点用来记录链表的基地址。有了基地址我们就可以遍历整条链表。而尾结点的下一个结点指向NULL,这标识为链表的最后一个结点。

  • 循环链表

    在这里插入图片描述

​ 循环链表可以看做是一个特殊的单链表,特殊之处在于其尾结点指向的下一个结点为头结点。

​ 循环链表的优点是从链尾到链头比较方便,当我们处理的数据具有环型结构的特点时比较适合。

  • 双向链表:

在这里插入图片描述
​ 双向链表与单向链表的区别在于:双向链表多一个指向前一个结点的指针 前继指针prev.

​ 在java中队列的表示方法:


                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值