#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int status;
#define MAXSIZE 100
typedef int ElemType;
typedef struct
{
ElemType *elem;
int length;
}SqList;
status InitList(SqList *L)
{
L->elem=(ElemType *)malloc(sizeof(ElemType)*MAXSIZE);
if(!L->elem)
exit(OVERFLOW);
L->length=0;
return OK;
}
status GetElem(SqList L,int i,ElemType *e)
{
if(i<1||i>L.length)
return ERROR;
*e=L.elem[i-1];//将值赋给指针所指内存!
return OK;
}
int LocateElem(SqList L,ElemType e)
{
int i;
for(i=0;i<L.length;i++)
if(L.elem[i]==e)
return i+1;
return 0;
}
status ListInsert(SqList *L,int i,ElemType e)
{
if(i<1||i>L->length+1)
return ERROR;
if(L->length==MAXSIZE)
return ERROR;
int j;
for(j=L->length-1;j>=i-1;j--)
{
L->elem[j+1]=L->elem[j];
}
L->elem[i-1]=e;
++L->length;
return OK;
}
status ListDelete(SqList *L,int i)
{
if(i<1||i>L->length)
return OK;
int j;
for(j=i;j<L->length;j++)
L->elem[j-1]=L->elem[j];
--L->length;
return OK;
}
int main()
{
SqList L;
InitList(&L);
int i=0;
for(;i<MAXSIZE;i++)
ListInsert(&L,i+1,i);
for(i=0;i<10;i++)
{
ElemType e;
GetElem(L,i+1,&e);
printf("%d ",e);
}
printf("\n");
ListDelete(&L,1);
for(i=0;i<10;i++)
{
ElemType e;
GetElem(L,i+1,&e);
printf("%d ",e);
}
printf("\n");
printf("%d\n",LocateElem(L,2));
return 0;
}
数据结构C语言-顺序表
最新推荐文章于 2023-07-26 21:47:37 发布