#include<stdio.h>
#include<malloc.h>
#define INIT_size 100
typedef int dataType ;
//结构体的定义
typedef struct {
dataType *data;
int size;
int maxsize;
}Sqlist;
//初始化顺序表
void InitList(Sqlist *l){
l->data = (dataType*)malloc(INIT_size*sizeof(dataType));
l->size = 0;
l->maxsize = INIT_size;
}
//在顺序表l的第k个位置插入元素x
void Insert(Sqlist *l,int k,dataType x){
if(k<1 || k>l->size+1) exit(1);
if(l->size == l->maxsize) exit(1);
for(int i=l->size;i>=k;i--)
l->data[i] = l->data[i-1];
l->data[k-1] = x;
l->size++;
}
//删除顺序表l的第k个元素
void Delete(Sqlist *l,int k){
if(k<1 || k>l->size+1) exit(1);
for(int i=k;i<l->size;i++)
l->data[i-1] = l->data[i];
l->size--;
}
//判断顺序表是否为空
int Empty(Sqlist *l){
return l->size == 0;
}
//判断顺序表是否为满
int Full(Sqlist *l){
return l->size == l->maxsize;
}
//求顺序表中第i个元素的值
dataType GetData(Sqlist *l,int i){
if(i<1 || i>l->size+1) exit(1);
return l->data[i-1];
}
//在顺序表中查找元素x的位置
int locate(Sqlist *l,int x){
for(int i=0;i<l->size;i++){
if(l->data[i] == x)
return i+1;
}
}
void Print(Sqlist *l){
for(int i=0;i<l->size;i++){
printf("%d ",l->data[i]);
}
printf("\n");
}
int main()
{
system("color f1");
Sqlist list,*pList = &list;
InitList(pList);
Insert(pList,1,10);
Insert(pList,1,20);
Insert(pList,2,30);
Delete(pList,1);
Print(pList);
printf("%d\n",locate(pList,30));
printf("%d",GetData(pList,1));
}



实验效果

顺序表的实现_顺序表