线性结构

线性结构

线性结构是一种基础的数据结构,主要用于对客观世界中具有为唯一前驱和后继的数据关系进行描述。线性结构的特点是元素之间呈现一种线性关系,即元素“一个接一个排序”。

1.1 线性表

线性表是最简单、最基本页是最常用的一种线性结构。常采用顺序储存和链式储存,主要的基本操作是插入、删除和查找等。

1.1.1 线性表的定义

一个线性表是n(n>0)个元素的有限序列,通常表示为(a1,a2,a3,………an)。非空线性表的特点如下

 

A1

A2

….

An

  1. 存在唯一的一个称作“第一个”的元素;
  2. 存在唯一的一个乘坐“最后一个”的元素;
  3. 除第一个元素外,序列中的每个元素均只有一个直接的前驱;
  4. 除最后一个元素外,序列中的每个元素均只有一个直接后驱。

 

1.1.2线性表的储存结构

线性表的储存结构分为顺序储存和链式储存。

 

  1. 线性表的顺序储存

 

线性表的顺序存储是指用一组地址连续的储存单元依次储存线性表中元素,从而使得逻辑上相邻的两个元素物理地址也相邻。这种储存方式下,元素之间的逻辑关系无需占用额外空间储存。

一般的,以LOC(a1)表示线性表中第一个元素的储存位置,在顺序储存结构中,第i个元素储存位置为:

LOC(ai)=LOC(a1)+(i-1)*L(L是表中每个元素所占空间的字节数)

根据该计算关系,可随机存取表中的任一元素。

线性表采用顺序储存结构的优点是可以随机存取表中的元素,缺点是插入和删除元素需要移动元素。在插入元素前需要移动元素以挪出空的储存单元,然后在插入元素。删除时同样需要移动元素,以填充被删除元素空出的储存单元。

 

 

  1. 线性表的链式储存

线性表的链式储存是用通过指针链接起来的节点来储存数据元素,基本的节点结构如下图:

 

元素域

指针域

 

其中数据域用来储存数据元素的值,指针域则储存当前元素的直接前驱或直接后继的位置信息,指针域中的信息称为指针(或链)。

储存各数据元素的节点的地址并不要求是连续的,因此储存数据元素的同时,必须储存数据元素之间的逻辑关系。另外,节点空间只有在需要时才申请,无需事先分配。

节点之间通过指针域构成一个链表,若节点中只有一个指针域,则称为线性链表(或单链表)

在链式储存结构中,只需要一个头指针只想第一个节点,就可以顺序地访问到链表中任意一元素。

在链式储存结构中删除和插入元素,实质时对相关指针的修改。在单链表中,若在p节点后插入新元素节点s,步骤如下:

 

  1. 将p节点所指节点的后继指针给s所指节点的指针域;
  2. P所指节点的指针域修改为指向s所指节点。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值