Skip to main content

基础

定义

n(n>=0)个具有相同性质的数据元素的一个有限序列

·其中数据元素的个数n定义为表的长度。

·当n=0时称为空表

逻辑特征

在非空的线性表,有且仅有一个开始结点a1,没有直接前趋,仅有一个直接后继a2

有且仅有一个终端结点An,它么有直接后继,而仅有一个直接前趋An-1

内部节点Ai(2<=i<=n-1)都有且仅有一个直接前趋Ai-1和一个直接后继Ai+1

基本操作(一)

InitList(&L):构造一个空的线性表L

DesstroyList(&L):若线性表L已存在,销毁线性表L

ClearList(&L):若线性表L已经存在,将线性表L重置为空表

ListEmpty(L):若线性表L已经存在且为空表,则返回TRUE,否则返回FALSE

ListLength(L):若线性表L已经存在,返回表中的数据元素个数

GetElem(L, i, &e):若线性表L已经存在,1<=i<=ListLength(L),用e返回线性表中第i个数据元素的值

LocateElem(L, e, compare()):若线性表L已经存在,compare()是数据元素判定函数,返回L中第1个与e满足compare()的数据元素的位序。若数据元素不存在则返回值为0.

PriorElem(L, cur_e, &pre_e):若线性表L已经存在,cur_eL的数据元素,且不是第一个,则用pre_e返回它的前驱,否则操作失败;pre_e无意义。

NextElem(L, cur_e, &next_e):若线性表L已经存在,cur_eL的数据元素,且不是最后一个,则用next_e返回它的后继,否则操作失败,next_e无意义。

ListInsert(&L, i, e):线性表L已经存在,1<=i<=ListLength(L)+1,在L的第i个位置之前插入新的数据元素e,L的长度加一。

ListDelete(&L, i, &e):线性表L已经存在,1<=i<=ListLength(L),删除L的第i个数据元素,并用e返回其值,L的长度减一。

ListTraerse(&L, visited()):线性表L已经存在,依次对线性表中每个元素调用visited()

// 创建数组
SqList L;
L.data = (ElemType*)malloc(sizeof(ElemType)*MaxSize);
malloc(m)函数,开辟m字节长度的地址空间,并返回这段空间的首地址
sizeof(x)运算,计算变量x的长度
free(p)函数,释放指针p所指变量的存储空间,即彻底删除一个变量