简单顺序表的增删改查实例:
#include <stdio.h>
#define MAX 100
typedef struct
{
int length;
int data[MAX];
}Sqlist,*PSqlist;
void initList(PSqlist p);
void insertList(PSqlist p,int elem);
void deleteList(PSqlist p,int locate);
void displist(PSqlist p);
void modiList(PSqlist p,int locate,int elem);
int main()
{
Sqlist list;
PSqlist plist = &list;
// 初始化
initList(plist);
// 增
insertList(plist,12);
insertList(plist,13);
insertList(plist,14);
insertList(plist,15);
displist(plist);
// 删
deleteList(plist,1);
printf("\nAfter Delete\n");
displist(plist);
// 改
modiList(plist,3,111);
// 查
printf("\nAfter Modified\n");
displist(plist);
}
void initList(PSqlist p)
{
p->length = 0;
for (int i = 0; i < 100; i ++)
p->data[i] = 0;
}
void insertList(PSqlist p,int elem)
{
p->data[p->length] = elem;
p->length ++;
}
void deleteList(PSqlist p,int locate)
{
if (locate > p->length || locate < 0)
{
printf("输入无效");
return;
}
for (int i = locate; i < p ->length-1; i++)
p->data[i] = p->data[i+1];
p->data[p->length] = 0;
p->length --;
}
void displist(PSqlist p)
{
for (int i = 0; i < p->length; i++)
printf("%d\t",p->data[i]);
printf("\n");
}
void modiList(PSqlist p,int locate,int elem)
{
if (locate > p->length || locate < 0)
{
printf("输入无效");
return;
}
p->data[locate] = elem;
}