西安交大朱站立《数据结构——使用C语言》头文件
顺序表(SeqList.h)
typedef struct
{
DataType list[MaxSize];
int size;
} SeqList;
void ListInitiate(SeqList *L) //初始化顺序表
{
L->size=0; //定义初始元素个数
}
int ListLength(SeqList L)
{
return L.size; //返回顺序表的当前数据元素个数
}
int ListInsert(SeqList *L,int i,DataType x)
/*在顺序表L 的第i(0<=i<=size)个位置前插入数据元素值*/
/*插入成功返回 1,失败返回0*/
{
int j;
if(L->size>=MaxSize)
{
printf("顺序表已满无法插入!\n");
return 0;
}
else if(i<0||i>L->size)
{
printf("参数不合法!\n");
}
else
{
for(j=L->size;j>i;j--) L->list[j]=L->list[j-i];
L->list[i]=x; //插入x
L->size++; //元素个数加1
return 1;
}
}
int ListDelete(SeqList *L,int i,DataType *x)
/*删除顺序表L 中位置为i(0<=i<=size-1) 的数据元素并存放到x 中*/
/*删除成功返回 1,失败返回0*/
{
int j;
if(L->size<=0)
{
printf("顺序表已空无可删!\n");
return 0;
}
else if(i<0||i>L->size-1)
{
printf("参数不合法!\n");
return 0;
}
else
{
*x=L->list[i]; //保存删除的元素到x 中
for(j=i+1;j<=L->size-1;j++) L->list[j-1]=L->list[j]; //依次前移
L->size--; //数据元素个数减1
return 1;
}
}
int ListGet(SeqList L,int i,DataType *x)
/*取顺序表L 中第i 个数据元素存于x 中,成功返回1,失败返回0*/
{
if(i<0||i>L.size-1)
{
printf("参数不合法!\n");
return 0;
}
else
{
*x=L.list[i];
return 1;
}
}
测试主函数(SeqList.cpp)
#include //该文件包含printf() 函数
#define MaxSize 100 //定义MaxSize 为100
typedef int DataType;