线性表
定义:由n个数据元素组成的有限序列。
其中某个元素的前一个元素称为该元素的直接前驱,后一个元素称为该元素的直接后继。当n=0时称为空表。
线性表的操作如何实现取决于线性表如何存储:顺序存储结构和链式存储结构。
一
用顺序存储结构来定义线性表
可用数组表示,但数组长度不可变,线性表长度可变,固可再加一变量表示线性表的长度属性。
模版
例子
线性表的基本操作(顺序存储结构)
1
initlist(&L)
构造一个空的线性表L
2
destorylist(&L)
销毁线性表L
3
ClearList(&L)
将线性表L重置为空表。
4
ListEmpty(L)
若线性表L为空表则返回TURE;否则返回FALSE
5
ListLength(L)
返回线性表L中的数据元素个数
6
GetElem(L,i,&e);
用e返回线性表L中第i个数据元素的值
7
LocateElem(L, e, compare())
compare()是数据元素判定函数,返回L中第1个与e满足compare)的数据元素的位序。若这样的数据元素不存在则返回值为0。
8
PriorElem(L, cur _e,&pre _e)
若cur_e是L的数据元素,且不是第一个,则用pre_e返回它 的前驱,否则操作失败,pre_e无意义
9
NextElem(L, cur_e, &next_e)
若cur_e是L的数据元素,且不是最后一个,则用next_e返回它的后继, 否则操作失 败, next_e无意义。
10
Listlnsert(&L, i, e)
在L的第i个位置之前插入新的数据元素e, L的长度加一。
11
ListDelete(&L, i, &e)
删除L的第i个数据元素,并用e返回其值,L的长度减一。
12
Listraverse(&L, visited())
依次对线性表中每个元素调用visited()