生成一个用C++写的顺序表
时间: 2023-03-19 18:21:32 浏览: 107
MST.zip_C++最小生成树_mst_实现MST
以下是一个用 C 语言写的顺序表示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 最大容量为 100
typedef struct {
int data[MAX_SIZE]; // 数据存储数组
int length; // 当前长度
} SeqList;
void init(SeqList *L) { // 初始化顺序表
L->length = 0;
}
int insert(SeqList *L, int pos, int elem) { // 在指定位置插入元素
if (pos < 1 || pos > L->length + 1 || L->length == MAX_SIZE) { // 判断插入位置是否合法
return 0;
}
for (int i = L->length; i >= pos; i--) { // 将 pos 及之后的元素后移
L->data[i] = L->data[i - 1];
}
L->data[pos - 1] = elem; // 将元素插入到 pos 位置
L->length++; // 长度加一
return 1;
}
int delete(SeqList *L, int pos) { // 删除指定位置的元素
if (pos < 1 || pos > L->length) { // 判断删除位置是否合法
return 0;
}
for (int i = pos; i < L->length; i++) { // 将 pos 及之后的元素前移
L->data[i - 1] = L->data[i];
}
L->length--; // 长度减一
return 1;
}
void print(SeqList L) { // 打印顺序表
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int main() {
SeqList L;
init(&L); // 初始化顺序表
insert(&L, 1, 1); // 在第一个位置插入元素 1
insert(&L, 2, 2); // 在第二个位置插入元素 2
insert(&L, 3, 3); // 在第三个位置插入元素 3
print(L); // 输出顺序表,期望输出:1 2 3
delete(&L, 2); // 删除第二个位置的元素
print(L); // 输出顺序表,期望输出:1 3
return 0;
}
```
以上顺序表示例包含初始化顺序表、插入元素、删除元素、打印顺序表等基本操作,可以根据实际需求进行扩展。
阅读全文