本关任务:编写一个函数实现增加一个新的线性表。 函数原型:status AddList(LISTS &Lists,char ListName[]) 功能说明:Lists是一个以顺序表形式管理的线性表的集合,在集合中增加一个新的空线性表。增加成功返回OK,否则返回ERROR。
时间: 2024-03-13 16:43:39 浏览: 90
好的,我理解了你的要求。以下是实现增加一个新的线性表的函数AddList的代码:
```
#define MAXSIZE 100 //线性表的最大长度
typedef struct {
int data[MAXSIZE]; //存储元素的数组
int length; //线性表的长度
} LIST;
typedef struct {
LIST list[MAXSIZE]; //存储线性表的数组
int length; //线性表的个数
} LISTS;
typedef enum {
ERROR,
OK
} status;
status AddList(LISTS &Lists, char ListName[]) {
if (Lists.length == MAXSIZE) { //线性表个数达到最大值
return ERROR;
}
for (int i = 0; i < Lists.length; i++) { //检查线性表名是否已存在
if (strcmp(ListName, "List") == 0) { //线性表名已存在
return ERROR;
}
}
strcpy(Lists.list[Lists.length].name, ListName); //将线性表名存入新建的线性表中
Lists.list[Lists.length].length = 0; //新建的线性表长度为0
Lists.length++; //线性表个数加1
return OK;
}
```
该函数的实现思路是:首先判断线性表个数是否已达到最大值,如果是,则返回ERROR;然后遍历所有线性表,检查新建的线性表名是否已存在,如果是,则返回ERROR;最后将新建的线性表名存入新建的线性表中,将新建的线性表长度初始化为0,线性表个数加1,返回OK。