1、顺序存储结构(如数组)
定义:
#define MAXSIZE 20
typedef struct{
int data[MAXSIZE]; //假设这里是整型
int length; //线性表长度
};
读取其中某个元素:假设线性顺序表已存在,读取其中第i个元素,其值返回到e中
#define ERROR 0
#define OK 1 //定义返回状态
int GetElem(Squlist L, int i, int *e){
if (L.length == 0 || i<1 || i>L.length) //该元素不存在或者超出表范围或者表为空则读取失败
return ERROR;
*e = L.data[i - 1];
return OK; //读取成功
};
插入操作:在第i个元素前面插入元素e
int ListInsert(Squlist *L, int i, int e){
int k;
if (L->length == MAXSIZE) //表格是否满
return ERROR;
if (i<1 ||i>length+1) //插入i不在范围内
return ERROR;
if (i <= L->length)
{
for (k = length - 1; k >= i - 1; k--)
L->data[k + 1] = L->data[k];
}
L->data[i] = e;
length++;
return OK;
};