二.线性表的抽象数据类型
抽象数据类型定义 :
ADT线性表(list)
Data
Operation(操作)
InitList(L):初始
化操作,建立一个空的线性表L。
ListEmpty(L):判断线性表是否为空表,若线性表为空,返回FALSE
ClearList(L):将线性表清空
GetElem(L,i,e):将线性表L中的第i个位置元素值返回给 e
LocateElem(L,e):在线性表L中查找与给定值e相等的元素,如果查找成功,返回该元素在表中序号表示成功,否则,返回0表示失败
ListInsert(L,i,e):在线性表L中第i个位置插入新元素e;
线性表的顺序存储结构
1.顺序存储结构
结构代码:
define MAXSIZE 20
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE];//定义的类型是在这里实现的,MaXSIZE是这个
int length;
}SpList
总结下,顺序存储结果封装需要三个属性:
-存储空间的起始位置,数组data,它的存储位置就是线性表存储空间的存储位置,
线性表的最大存储容量:数组的长度MaxSize
线性表的当前长度:Length
注意,数组的长度与线性表的当前长度区别一下,数组的长度是存放线性表的存储空间的总长度,一般初始化后不变,而线性表的当前长度是线性表中元素的个数,是会变化的。
针对地址计算方法
ElemType()占用的是C一个存储单元(字节)(这个是一个针对类型的函数,一些类型对应相应的字节),那么线性表中第i+1个数据元素和第i个数据元素的存储位置关系是(LOC表示后的存储位置的函数):LOC(ai+1)=LOC(ai)+C
C 是想对应的存储单元。
ListInsert(*L,i,e),即在线性表L中的第i个位置插入新元素e,
2.链式存储结构

浙公网安备 33010602011771号