帮我用C语言写一段建造顺序存储结构的线性表
时间: 2023-03-23 21:01:09 浏览: 137
好的,我可以为您提供一段建造顺序存储结构的线性表的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
void InitList(SqList *L) {
L->length = 0;
}
int ListInsert(SqList *L, int i, int e) {
int j;
if (i < 1 || i > L->length + 1 || L->length == MAXSIZE) {
return 0;
}
for (j = L->length; j >= i; j--) {
L->data[j] = L->data[j-1];
}
L->data[i-1] = e;
L->length++;
return 1;
}
int ListDelete(SqList *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;
}
int main() {
SqList L;
int i;
InitList(&L);
ListInsert(&L, 1, 10);
ListInsert(&L, 2, 20);
ListInsert(&L, 3, 30);
for (i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
ListDelete(&L, 2);
for (i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
return 0;
}
```
这段代码定义了一个结构体 `SqList`,其中 `data` 数组存储元素,`length` 存储线性表的长度。`InitList` 函数用于初始化线性表,`ListInsert` 函数用于在线性表的第 i 个位置插入元素 e,`ListDelete` 函数用于删除线性表的第 i 个元素。在 main 函数中,我们先初始化线性表,然后插入三个元素,输出线性表,再删除第二个元素,最后再次输出线性表。
阅读全文