线性表(一)

线性表(一)

由n(n>=0)个数据特性相同的元素构成的有限序列称为线性表
线性表中元素的个数n(n>=0)定义为线性表的长度,n=0时称为空表
对于非空的线性表或线性关系,其特点是:

  • 存在唯一的一个被称作“第一个” 的数据元素;
  • 存在唯一的一个被称作“最后一个”的数据元素;
  • 除第一个之外,结构中的每个数据元素均只有一个前驱:
  • 除最后一个之外,结构中的每个数据元素均只有一个后继。
  • 线性表的类型定义

线性表是一个相当灵活的数据结构,其长度可根据需要增长或缩短,即对线性表的数据元素不仅可以进行访问,而且可以进行插入和删除等操作。
在这里插入图片描述
线性表的顺序表示指的是用组地址连续的存储单元依次存储线性表的数据元素,这种表示也称作线性表的顺序存储结构或顺序映像。通常称这种存储结构的线性表为顺序表,其特点是,逻辑上相邻的数据元素,其物理次序也是相邻的。
假设线性表的每个元素需占用1个存储单元,并以所占的第一个单元的存储地址作为数据元素的存储起始位置。则线性表中第i+1个数据元素的存储位置LOC(an+1 )和第 i 个数据元素的存储位置LOC(ai)之间满足下列关系:

                    LOC(ai+1)= LOC(ai)+ l
一般来说, 线性表的第 i 个数据元素ai的存储位置为:
                    LOC(ai)= LOC(ai)+(i- 1)xl

式中,LOC(ai)是线性表的第一个数据元素 ai的存储位置,通常称作线性表的起始位置或基地址,表中相邻的元素ai 和ai+1的存储位置LOC(ai)和LOC(ai+1)是相邻的。每一个数据元素的存储位置都和线性表的起始位置相差一个常数,这个常数和数据元素在线性表中的位序成正比.由此,只要确定了存储线性表的起始位置,线性表中任一数据元素都可随机存取,所以线性表的顺序存储结构是一种随机存取的存储结构。
在这里插入图片描述
由于高级程序设计语言中的数组类型也有随机存取的特性,因此,通常都用数组来描述数据结构中的顺序存储结构。在此,由于线性表的长度可变,且所需最大存储空间随问题不同而不同,则在C语言中可用动态分配的一维数组表示线性表,捕述如下:

//---------顺序飙升的存储结构-----------
#define MAXSIZE 100           //顺序表可能达到的最大长度
typedef struct
{
   
       ElemType  *eiem;            //存储空间的基地址
       int length;               
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值