静态顺序表的实现c语言
时间: 2024-06-15 22:05:43 浏览: 107
C语言实现静态顺序表的实例详解
静态顺序表是一种使用数组实现的线性表,它的大小在编译时确定,不可动态改变。下面是静态顺序表的C语言实现:
```c
#define MAX_SIZE 100 // 定义静态顺序表的最大容量
typedef struct {
int data[MAX_SIZE]; // 用数组存储数据元素
int length; // 当前顺序表的长度
} SeqList;
// 初始化顺序表
void init(SeqList *list) {
list->length = 0;
}
// 插入元素
int insert(SeqList *list, int index, int value) {
if (index < 0 || index > list->length || list->length == MAX_SIZE) {
return 0; // 插入位置不合法或顺序表已满,插入失败
}
for (int i = list->length - 1; i >= index; i--) {
list->data[i + 1] = list->data[i]; // 将插入位置后的元素后移一位
}
list->data[index] = value; // 在插入位置插入新元素
list->length++; // 长度加1
return 1; // 插入成功
}
// 删除元素
int remove(SeqList *list, int index) {
if (index < 0 || index >= list->length) {
return 0; // 删除位置不合法,删除失败
}
for (int i = index + 1; i < list->length; i++) {
list->data[i - 1] = list->data[i]; // 将删除位置后的元素前移一位
}
list->length--; // 长度减1
return 1; // 删除成功
}
// 获取元素
int get(SeqList *list, int index) {
if (index < 0 || index >= list->length) {
return -1; // 获取位置不合法,返回-1表示失败
}
return list->data[index];
}
// 修改元素
int modify(SeqList *list, int index, int value) {
if (index < 0 || index >= list->length) {
return 0; // 修改位置不合法,修改失败
}
list->data[index] = value;
return 1; // 修改成功
}
```
以上是静态顺序表的简单实现,包括初始化、插入、删除、获取和修改等基本操作。你可以根据需要进行调用和扩展。
阅读全文