#include "stdio.h"
#include "stdlib.h"
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int status;
typedef int ElemType; //数据元素类型定义
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int ElemType;
typedef struct{ //顺序表(顺序结构)的定义
ElemType * elem;
int length;
int listsize;
}SqList;
status SaveList(SqList L,char FileName[])
// 如果线性表L存在,将线性表L的的元素写到FileName文件中,返回OK,否则返回INFEASIBLE。
{
// 请在这里补充代码,完成本关任务
/********** Begin *********/
/********** End **********/
}
status LoadList(SqList &L,char FileName[])
// 如果线性表L不存在,将FileName文件中的数据读入到线性表L中,返回OK,否则返回INFEASIBLE。
{
// 请在这里补充代码,完成本关任务
/********** Begin *********/
/********** End **********/
}
status AddList(LISTS *Lists, char ListName[])
{
// 请在这里补充代码,完成本关任务
/********** Begin *********/
/********** End **********/
}
status RemoveList(LISTS *Lists, char ListName[])
//Lists中删除一个名称为Listname的线性表
{
// 请在这里补充代码,完成本关任务
/********** Begin *********/
/********** End **********/
}
int LocateList(LISTS Lists,char ListName[])
// 在Lists中查找一个名称为ListName的线性表,成功返回逻辑序号,否则返回0
{
// 请在这里补充代码,完成本关任务
/********** Begin *********/
/********** End **********/
}
第13关:线性表读写文件
本关任务:编写两个函数实现将顺序表的数据元素的读写文件。
函数原型:status SaveList(SqList L,char FileName[])
函数原型:status LoadList(SqList &L,char FileName[])
功能说明:SaveList:如果线性表L不存在,返回INFEASIBLE;否则将线性表L的全部元素写入到文件名为FileName的文件中,返回OK。LoadList:如果线性表L存在,表示L中已经有数据,读入数据会覆盖原数据造成数据丢失,返回INFEASIBLE;否则将文件名为FileName的数据读入到线性表L中,返回OK。本实验不考虑用追加的方式读入文件数据追加到现有线性表中。
第14关:多线性表管理:增加一个新线性表
本关任务:编写一个函数实现增加一个新的线性表。
函数原型:status AddList(LISTS &Lists,char ListName[])
功能说明:Lists是一个以顺序表形式管理的线性表的集合,在集合中增加一个新的空线性表。增加成功返回OK,否则返回ERROR。
第15关:多线性表管理:移除一个线性表
本关任务:编写一个函数实现移除一个指定的线性表。
函数原型:status RemoveList(LISTS &Lists,char ListName[])
功能说明:Lists是一个以顺序表形式管理的线性表的集合,在集合中查找名称为ListName的线性表,有则删除,返回OK,无则返回ERROR。
第16关:多线性表管理:查找线性表
本关任务:编写一个函数实现查找一个指定的线性表。
函数原型:int LocateList(LISTS Lists,char ListName[])
功能说明:Lists是一个以顺序表形式管理的线性表的集合,在集合中查找名称为ListName的线性表,有则返回线性表的逻辑序号,无则返回0。