使用c语言构造顺序表代码
时间: 2023-08-02 12:06:16 浏览: 103
下面是使用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 insertList(SqList *L, int pos, int elem) {
if (pos < 1 || pos > L->length + 1 || 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++; // 长度加1
return 1;
}
// 删除元素
int deleteList(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--; // 长度减1
return 1;
}
// 输出顺序表
void printList(SqList L) {
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int main() {
SqList L;
initList(&L);
insertList(&L, 1, 1);
insertList(&L, 2, 2);
insertList(&L, 3, 3);
printList(L);
deleteList(&L, 2);
printList(L);
return 0;
}
```
代码中定义了一个 SqList 结构体,包含一个数组和当前长度,实现了初始化顺序表、插入元素、删除元素和输出顺序表的操作。可以根据需要进行修改。
阅读全文