线性表的顺序表示及相关运算(C语言实现)
文章目录
一.线性表顺序存储结构抽象类型定义
二.线性表顺序表示的基本操作
1.顺序表的抽象类型定义
#include <stdlib.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct{
ElemType data[MAXSIZE];
int length;
}SeqList;
2.顺序表示的基本运算
2.1 建立顺序表
void createSqList(SeqList *L, ElemType a[]) {
L->length = 0;
int i, k = 0;
for (i = 0; i < MAXSIZE; i++) {
L->data[i] = a[k];
k++;
L->length++;
}
}
2.2顺序表的插入操作
int insertSeqList(SeqList *L, ElemType edata, int i) {
int j;
if (L->length == MAXSIZE)
return 0;
if (i < 1 || i > L->length + 1)
return 0;
for (j = L->length; j >= i; j--)
L->data[j] = L->data[j - 1];
L->data[i - 1] = edata;
L->length++;
return 1;
}
2.3 顺序表的删除运算
int DeleteSeqList(SeqList *L, int i) {
int j;
if (i < 1 || i > L->length)
return 0;
for (j = i; j < L->length; j++)
L->data[j - 1] = L->data[j];
L->length--;
return 1;
}
2.4顺序表的定位运算
int LocateSeqList(SeqList *L, ElemType edata) {
int i = 0;
while (i < L->length && L->data[i] != edata)
i++;
if (i < L->length)
return i + 1;
else
return 0;
}