#define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量
#define LISTINCREMENT 10 // 线性表存储空间的分配增量//状态结果的代码
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW –1
-
函数原型:
//-----------基本的操作--------------------------------- //构造一个空的线性表 int InitList(SqList *L); //销毁线性表L,L已经存在 int DestroyList(SqList *L); //将表L置空,线性表L已经存在 int ClearList(SqList *L); //判断L是否为空,空返回true,否则false,L已经存在 int ListEmpty(SqList L); //返回L中元素的个数,L已经存在 int ListLength(SqList L); //用e返回L中的第i个元素的值,成果返回true.1<=i<=Lenth int GetElem(SqList L, int i, Elemtype *e); //返回L中第一个与e满足关系compare()的数据的位(1,2,...), //不成功返回0, L已经存在,compare()为判定函数 int LocateElem(SqList L,Elemtype e,int (*compare)(void *, void *)); //若cur_e是L的数据元素,且不是第一个,则用pre_e返回他的 //前驱,否则返回失败,pre_e无定义,L存在 int PriorElem(SqList L, Elemtype cur_e, Elemtype *pre_e); //若cur_e是L的数据元素,且不是最后一个,则用next_e返回他的 //后继,否则返回失败,next_e无定义,L存在 int NextElem(SqList L, Elemtype cur_e, Elemtype *next_e); //在L的第i个位置插入新的元素e,L的长度加一,L已经存在 //1<=i<=listlength+1,成功返回ture int ListInsert(SqList *L, int i, Elemtype e); //删除L的第i个元素,用e保存,L长度减一 //线性表L已经存在非空,1<=i<=listlength int ListDelete(SqList *L, int i, Elemtype *e); //依次对L调用函数visit(),失败就操作失败,L已经存在 int ListTraverse(SqList L, int (* visit)(void *)); //显示线性表中的所有元素 int ListPrint(SqList L); //保存线性表到文件 int ListSave(SqList L); //导入线性表文件 int ListLoad(SqList *L);
源代码:
实现效果:界面:
导入:
显示: