【所有相关函数代码】
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXSIZE 100
typedef struct {
char id[20];
char name[9];
} student;
typedef struct {
student *s;
int length;
} sqList;
//初始化
void init(sqList* L)
{
L->s=(student *)malloc(sizeof(student)*MAXSIZE);//分配最大空间
L->length = 0;//将长度置为0
}
//销毁
void destroy(sqList* L)
{
if (L->s) free(L->s);//释放所有空间
}
//往顺序表填充内容
void input(sqList* L)
{
int i;
student* s = L->s;
printf("Please enter some messages(quit for putting the 'q' in the next one):\n");
for (i = 0; i < MAXSIZE; i++, s++)
{
printf("The No.%d's id:\n",i+1);
scanf("%s",s->id);
if (s->id[0]=='q') break;
printf("The No.%d's name:\n",i+1);
scanf("%s",s->name);
L->length ++;
}
}
//清空顺序表
void ClearList(sqList* L)
{
L->length = 0;//顺序表占用的空间仍然存在,单把元素个数置为0
}
//求线性表长度
int getlength(sqList* L)
{
return (L->length);
}
//判断线性表是否为空
int IsEmpty(sqList* L)
{
if (L->length == 0) return 1;//判断线性表元素的长度是否为0
else return 0;
}
//获取第i个元素的值,把它用变量s传递
int getelem(sqList* L, int i, student* s)
{
if (i<1 || i>L->length) return 0;
else {
*s = L->s[i - 1];
return 1;
}