请用C语言写出顺序表储存定义
时间: 2024-05-06 09:19:21 浏览: 82
好的,以下是用C语言写出顺序表的定义:
```
#define MAXSIZE 100 // 定义顺序表最大长度
typedef struct {
int data[MAXSIZE]; // 存储顺序表元素的数组
int length; // 当前顺序表的长度
} SeqList // 定义顺序表类型
void InitList(SeqList *L) {
// 初始化顺序表
L->length = 0;
}
int GetElem(SeqList L, int i) {
// 获取顺序表中第i个元素的值
if (i < 1 || i > L.length) {
// i不在合法的范围内
return -1; // 返回错误标记
}
return L.data[i-1];
}
int ListInsert(SeqList *L, int i, int e) {
// 在顺序表的第i个位置插入元素e
if (L->length == MAXSIZE || i < 1 || i > L->length+1) {
// 顺序表已满,i不在合法的范围内
return 0; // 返回插入失败标记
}
for (int j = L->length; j >= i; j--) {
L->data[j] = L->data[j-1]; // 从后往前移动元素
}
L->data[i-1] = e; // 在第i个位置插入元素e
L->length++; // 顺序表长度加1
return 1; // 返回插入成功标记
}
int ListDelete(SeqList *L, int i) {
// 删除顺序表中第i个元素
if (i < 1 || i > L->length) {
// i不在合法的范围内
return 0; // 返回删除失败标记
}
for (int j = i; j < L->length; j++) {
L->data[j-1] = L->data[j]; // 从前往后移动元素
}
L->length--; // 顺序表长度减1
return 1; // 返回删除成功标记
}
```
希望能够满足您的需求!
阅读全文