线性表的顺序存储方式比较简单,也很容易理解,不作过多说明,直接上代码实现,用的是C语言
#include <stdio.h>
#define MAXSIZE 100
#define OK 1
#define ERROR 0
typedef int ElemType;
typedef struct //定义顺序表(线形表的顺序存储结构)
{
ElemType data[MAXSIZE];
int length;
}SqList;
int GetElem(SqList L,int i,ElemType *e) //用e返回顺序表中第i个元素值
{
if(L.length==0||i<1||i>L.length)
return ERROR;
*e=L.data[i-1];
return OK;
}
int ListInsert(SqList *L,int i,ElemType e) //在顺序表中第i个元素前插入元素e
{
int k;
if(L->length==MAXSIZE) //顺序表已满
return ERROR;
if(i<1||i>L->length+1) //i不在范围内
return ERROR;
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 OK;
}
int ListDelete(SqList *L,int i