用C语言写一段代码,要求是顺序表的初始化、插入、删除、打印、销毁
时间: 2023-10-20 17:10:27 浏览: 77
下面是一份简单的顺序表代码,包括初始化、插入、删除、打印和销毁操作。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 // 定义最大元素个数
typedef struct {
int data[MAXSIZE]; // 存放元素的数组
int length; // 当前元素个数
} SeqList;
// 初始化顺序表
void InitList(SeqList *L) {
L->length = 0; // 将当前元素个数置为0
}
// 在顺序表中插入元素
int InsertList(SeqList *L, int pos, int elem) {
int i;
if (pos < 1 || pos > L->length + 1 || L->length >= MAXSIZE) {
return 0; // 插入位置非法或者顺序表已满,插入失败
}
for (i = L->length; i >= pos; i--) {
L->data[i] = L->data[i-1]; // 元素后移
}
L->data[pos-1] = elem; // 插入新元素
L->length++; // 当前元素个数加1
return 1; // 插入成功
}
// 在顺序表中删除元素
int DeleteList(SeqList *L, int pos) {
int i;
if (pos < 1 || pos > L->length) {
return 0; // 删除位置非法,删除失败
}
for (i = pos; i < L->length; i++) {
L->data[i-1] = L->data[i]; // 元素前移
}
L->length--; // 当前元素个数减1
return 1; // 删除成功
}
// 打印顺序表中的元素
void PrintList(SeqList *L) {
int i;
for (i = 0; i < L->length; i++) {
printf("%d ", L->data[i]);
}
printf("\n");
}
// 销毁顺序表
void DestroyList(SeqList *L) {
L->length = 0; // 将当前元素个数置为0
}
int main() {
SeqList L;
InitList(&L);
InsertList(&L, 1, 10);
InsertList(&L, 2, 20);
InsertList(&L, 3, 30);
PrintList(&L);
DeleteList(&L, 2);
PrintList(&L);
DestroyList(&L);
return 0;
}
```
阅读全文