用C语言代码构造一个顺序表,数据为33,6,8,10,0,3,2,1
时间: 2023-07-28 07:06:31 浏览: 100
以下是一个基本的顺序表实现,可以存储整型数据,并按照输入顺序输出。你可以将需要存储的数据填入数组 `data` 中,然后运行代码。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 定义顺序表最大长度
typedef struct {
int *elem; // 存储空间基址
int length; // 当前长度
} SqList;
int InitList(SqList *L) {
L->elem = (int *)malloc(MAX_SIZE * sizeof(int)); // 分配存储空间
if (!L->elem) {
return 0; // 分配失败
}
L->length = 0;
return 1; // 初始化成功
}
int ListInsert(SqList *L, int i, int e) {
if (i < 1 || i > L->length + 1) {
return 0; // 插入位置不合法
}
if (L->length >= MAX_SIZE) {
return 0; // 顺序表已满
}
int *p, *q;
q = &(L->elem[i - 1]); // q为插入位置
for (p = &(L->elem[L->length - 1]); p >= q; --p) {
*(p + 1) = *p; // 插入位置及之后的元素后移
}
*q = e; // 插入元素
++L->length; // 长度加1
return 1; // 插入成功
}
int main() {
SqList L;
if (!InitList(&L)) {
printf("初始化失败\n");
return 0;
}
int data[8] = {33, 6, 8, 10, 0, 3, 2, 1};
for (int i = 0; i < 8; ++i) {
if (!ListInsert(&L, i + 1, data[i])) {
printf("插入失败\n");
return 0;
}
}
printf("顺序表内容为:");
for (int i = 0; i < L.length; ++i) {
printf("%d ", L.elem[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
顺序表内容为:33 6 8 10 0 3 2 1
```
阅读全文