顺序表应用举例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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)

{

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-1)

{

printf ("参数i不合法");

return 0;

}

else

{

*x = L->list[i];

for (j = i + 1; j <= L->size-1; j++)L->list[j-1] = L->list[j];

L->size--;

return 1;

}

}

int ListGet (SeqList L, int i, DataType *x)

{

if (i < 0 || i > L.size-1)

{

printf ("参数i不合法!\n");

return 0;

}

else

{

*x = L.list[i];

return 1;

}

}

#include

#define MaxSize 100 typedef int DataType; #include"SeqList.h" void main(void)

{

SeqList myList;

int i,x;

ListInitiate(&myList);

for(i=0;i<10;i++)

{

if( ListInsert(&myList, i, i+1) == 0) {

printf("错误!\n");

return;

}

}

if (ListDelete(&myList,4,&x) == 0) {

printf("错误!\n");

return;

}

for(i=0; i

if (ListGet(myList, i, &x) == 0)

{

printf("错误!\n");

return;

}

else printf("%d ",x);

}

}

相关文档
最新文档