线性表的初始化、查找、插入、删除操作的C语言版
#include <stdio.h>
#define MAXSIZE 20 //线性表的最大长度为20
typedef int ElemType; //线性表中的元素类型设为int型
typedef struct //定义线性表的结构
{
ElemType data[MAXSIZE];
int length;
}SqList;
int InitList(SqList *L){ //初始化线性表
L->length=0;
return 1;
}
int GetElem(SqList L,int i,ElemType *e) //获取线性表L中第i个位置的元素,并用e返回该元素的数值
{
if(L.length==0 || i<1 || i>L.length)
return 0;
*e=L.data[i-1];
return 1;
}
int ListInsert(SqList *L,int i,ElemType e) //在线性表L的第i个位置插入元素e
{
int k;
if(L->length==MAXSIZE)
return 0;
if(i<1 || i>L->length+1)
return 0;
if(i<=L->length)
{
for(k=L->length-1;k>=i-1;k--)
L->data[k+1]=L->data[k];
}
L->data[i-1]=e;
L->length++;
return 1;
}
int ListDelete(SqList *L,int i,ElemType *e){ //删除线性表第i个位置的元素的值,并用变量e返回
int k;
if(L->length==0)
return 0;
if(i<1 || i>L->length+1)
return 0;
e=L->data[i-1];
if(i<L->length)
{
k=i;
while(i<L->length)
{
L->data[k-1]=L->data[k];
++k;
}
}
L->length--;
return 1;
}