生成一个数据结构C语言版的线性表的代码
时间: 2024-04-30 17:24:01 浏览: 115
好的,下面是一个简单的C语言版的线性表代码:
```
#define MaxSize 100 // 线性表的最大长度
typedef struct {
int data[MaxSize]; // 存储数据元素
int length; // 线性表当前长度
} SqList; // 顺序存储结构
// 初始化线性表
void InitList(SqList *L) {
L->length = 0; // 线性表初始长度为0
}
// 插入元素
int ListInsert(SqList *L, int i, int e) {
int k;
if (L->length == MaxSize) { // 线性表已满,不能再插入元素
return 0;
}
if (i < 1 || i > L->length+1) { // i的位置不合法
return 0;
}
for (k = L->length; k >= i; k--) { // 将第i个位置及之后的元素后移
L->data[k] = L->data[k-1];
}
L->data[i-1] = e; // 将新元素e插入到第i个位置
L->length++; // 线性表长度增1
return 1;
}
// 删除元素
int ListDelete(SqList *L, int i, int *e) {
int k;
if (L->length == 0) { // 线性表为空,不能删除元素
return 0;
}
if (i < 1 || i > L->length) { // i的位置不合法
return 0;
}
*e = L->data[i-1]; // 将要删除的元素值赋给e
for (k = i; k < L->length; k++) { // 将第i个位置后的元素前移
L->data[k-1] = L->data[k];
}
L->length--; // 线性表长度减1
return 1;
}
```
希望能够帮到您。
阅读全文