定义一个20个元素的大小的线性表,然后依次实现顺序表 的定义,顺序表的初始化,顺序表的输出,顺序表的插入 和删除操作。
时间: 2023-05-21 12:02:30 浏览: 102
实现顺序表的基本运算:初始化、插入、删除、求表的长度、判空、释放。
5星 · 资源好评率100%
好的,以下是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 20
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
void InitList(SqList *L) {
for (int i = 0; i < MAXSIZE; i++) {
L->data[i] = 0;
}
L->length = 0;
}
void PrintList(SqList L) {
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int ListInsert(SqList *L, int pos, int elem) {
if (pos < 1 || pos > L->length + 1) {
return 0;
}
if (L->length >= MAXSIZE) {
return 0;
}
for (int i = L->length; i >= pos; i--) {
L->data[i] = L->data[i - 1];
}
L->data[pos - 1] = elem;
L->length++;
return 1;
}
int ListDelete(SqList *L, int pos) {
if (pos < 1 || pos > L->length) {
return 0;
}
for (int i = pos; i < L->length; i++) {
L->data[i - 1] = L->data[i];
}
L->length--;
return 1;
}
int main() {
SqList L;
InitList(&L);
for (int i = 1; i <= MAXSIZE; i++) {
ListInsert(&L, i, i);
}
printf("顺序表:");
PrintList(L);
ListInsert(&L, 5, 100);
printf("插入元素后的顺序表:");
PrintList(L);
ListDelete(&L, 10);
printf("删除元素后的顺序表:");
PrintList(L);
return 0;
}
```
输出结果:
```
顺序表:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
插入元素后的顺序表:1 2 3 4 100 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
删除元素后的顺序表:1 2 3 4 100 5 6 7 8 10 11 12 13 14 15 16 17 18 19
```
希望这个代码能够帮到你!
阅读全文