#include <stdio.h>#define MaxSize 1024 //数组能存储的最大最大元素个数typedef int DataType; //存储数据元素的数据类型typedef struct{ DataType list[MaxSize]; int size; //当前存储的数据元素个数}SeqList;//初始化void ListInit(SeqList *L)
{
L->size = 0;
}//求表长int ListLength(SeqList L)
{
return L.size;
}//插入数据元素int ListInsert(SeqList *L, int i, DataType x)
{
int j;
if (L->size >= MaxSize)
{
printf("顺序表已满,插入失败!!!\n");
return 0;
}
else if (i<0 || i>L->size)
{
printf("参数i不合法,插入失败!!!\n");
return 0;
}
else
{
for (j = L->size; j > i; j--)
L->list[j] = L->list[j - 1];
L->list[i] = x;
L->size++;
return 1;
}
}//删除数据元素int ListDelete(SeqList *L, int i, DataType *x){ int j; if (L->size <= 0) { printf("顺序表已空,删除失败!!!\n"); return 0; } else if (i < 0 || i >= L->size) { printf("参数i不合法,删除失败!!!\n"); return 0; } else { *x = L->list[i]; for (j = i; j < L->size - 1; j++) L->list[j] = L->list[j + 1]; L->size--; return 1; }}//取出数据元素//按位查找void ListGet(SeqList L, int i, DataType *x){ if (L.size <= 0) { printf("顺序表已空,取出元素失败!!!\n"); return 0; } else if (i < 0 || i >= L.size) { printf("参数i不合法,取出元素失败!!!\n"); return 0; } else { *x = L.list[i]; return 1; }}//安值查找int ListGetZ(SeqList L, DataType x, int *i)
{
int j;
for (j = 0; j < ListLength(L); j++)
{
if (L.list[j] == x)
{
*i = j;
return 1;
}
}
return 0;
}int main(){ SeqList L; int i, x; ListInit(&L); for (i = 0; i < 10; i++) ListInsert(&L, i, i + 10); ListDelete(&L, 4, &x); for (i = 0; i < ListLength(L); i++) { ListGet(L, i, &x); printf("%d ", x); } system("pause"); return 0;}