数据结构——线性表的抽象数据类型

数据结构——线性表的抽象数据类型

ADT (SequenceList)
        线性表(list)


Data
       线性表的数据对象集合为{a1,a2,a3,…,an},每个元素的类型均为Data Type(int,char,自定义)。其中除了第一个元素a1外,每个元素有且只有一个直接前驱元素;除了最后一个元素an外,每个元素有且只有一个直接后继元素;数据元素之间的关系是一对一的关系。


Operation(初始化,插入,删除,查找)
       InitList(*L):       初始化线性表,建立一个空的线性表L
       IsEmpty(L):       若相性表为空,返回 true,否则返回false
       ClearList(*L):              将线性表清空
       GetElem(L,i,*e):           将线性表L中第i个位置的数据元素返回给e
       ExsitElem(L,e):           存在则返回该元素在表中的下标,不存在就返回-1
       InsertElem(*L,i,e):              在线性表L中第i个位置插入新元素e
      DeleteElam(*L,i,*e):         删除线性表L中第i个位置的元素,并用e返回其值
      GetLength(L):         返回线性表L中的元素个数


什么是顺序表
    线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素
描述的要素

  1. 我们需要定义线性表的最大存储空间
#define Max_size 255
  1. 线性表里需要有统一类型的元素集合
typedef int ElemType;
typedef struct 
{
	int id;
	char *name;
}ElementType;
  1. 定义顺序表结构
typedef struct
{
	ElementType datas[Max_size];
	int lngth;
}

1. 存储空间的起始位置,数组datas的存储位置
2. 线性表的最大存储容量:数组长度Maz_size
3. 线性表的当前长度:length

顺序表中地址的计算

顺序存储数据元素a1a2aian
下标01ai-1n-1

访问第一个元素是*(datas+0)
第二个元素是*(datas+1)
第n个元素是*(datas+n-1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值