线性表

-线性结构的特点:在数据元素的非空有限集中

  1. 存在唯一的一个被称作’第一个’的数据元素;
  2. 存在唯一的一个被称作’最后一个’的数据元素;
  3. 除第一个外,集合中的每一个数据元素均只有一个前驱;
  4. 除最后一个外,集合中的每一个数据元素均只有一个后继;

线性表的顺序存储

-线性表的顺序表示:
-指用一组地址连续的存储单元一次存储线性表的数据元素


这里写图片描述

注意:
l代表每一个数据元素所需占的存储单元

-顺序存储线性表的插入和删除思想:

这里写图片描述


-插入说明:
    一般情况下,在第i(1<=i<=n)个元素之前插入一个元素时,需将第n至第i(共n-i+1)个元素向后移动一个位置。

-删除说明:
    一般情况下,删除第i(1<=i<=n)个元素时,需将从第i+1至第n(共n-i)个元素向前移动一个位置。

线性表的链式存储

-线性链表的链式存储结构又称做线性链表或单链表
-特点:
        用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)

例如:
线性表为{ZHAO,QIAN,SUN,LI,ZHOU,WU,ZHENG,WANG},则改线性表的链式存储结构为:
这里写图片描述


该线性表的逻辑状态为:
这里写图片描述


-每一个结点都是由数据域(data)和链域(next)组成。
例如:
对于ai结点:
                p–>data = ai
                p–>next–>data = ai+1

-线性链表的插入和删除思想:
-插入:
这里写图片描述

执行操作:
                s–>next = p–>next,
                p–>next = s;

-线性链表的删除:
这里写图片描述

执行操作:
                p–>next = p–>next–>next;

-双向链表

这里写图片描述

执行删除操作思想:

        p-->prior-->next = p-->next
        p-->next-->prior = p-->prior

执行插入操作思想:

设s为要插入的数据,则
s-->data = e;
s-->prior = p-->prior;
p-->prior-->next = s;
s--next = p;
p-->prior = s;

优缺点比较:

顺序存储方式:——适用于需要大量查询的场景
             代表例子:ArrayList
             优点:查询速度快,对于随机访问get和set效率高
             缺点:插入和删除比较麻烦

链式存储方式:——适用于大量的插入删除操作场景
             代表例子:LinkedList
             优点:插入和删除快,对于随机add和remove效率高
             缺点:查找比较麻烦

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值