线性表可以描述为:n个元素的有限序列。其存储结构分为顺序存储结构和链式存储结构。顺序存储结构是用一段连续的地址依次存储表中的数据元素,在C语言中可以使用动态数组来实现线性表的顺序存储。
定义:
#define LIST_INIT_SIZE 100
#define LIST_INCREMENT 10
typedef struct{
ElemType *elem;
int length;
int listsize;
}Sqlist;
操作:
1: InitList(L); /* 构造线性表 */
2: DestroyList(L); /* 销毁线性表 */
3: ClearList(L); /* 将线性表置空 */
4: ListEmpty(L); /* 判断线性表是否为空 */
5: ListLength(L); /* 返回线性表长度 */
6: GetElem(L, i, &e); /* 用e返回L中第i个元素 */
7: LocateElem(L, e, compare()); /* 返回L中第一个与e满足关系compare()的元素 */
8: PriorElem(L, cur_e, &pre_e); /* 返回cur_e的前驱元素 */
9: NextElem(L, cur_e, &next_e); /* 返回cur_e的后继元素 */
10: ListInsert(L, i, e); /* 在L中位置i之前插入元素e */
11: ListDelete(L, i, &e); /* 删除L中第i个元素 */
12: ListTraverse(L, visit()); /* 对每个元素调用visit() */