c语言实现静态顺序表
时间: 2024-09-20 11:07:46 浏览: 46
C语言实现动态顺序表的实现代码
在 C 语言中,静态顺序表通常是指数组作为数据结构来存储固定大小的数据元素。由于数组在内存中的连续存放,我们可以方便地访问其任意位置的元素。下面是一个简单的静态顺序表实现示例:
```c
#include <stdio.h>
// 定义静态顺序表的结构体
typedef struct {
int capacity; // 数组容量
int size; // 当前元素数量
int elements[CAPACITY]; // 存储数据的数组
} StaticList;
// 初始化函数
void initList(StaticList *list) {
list->capacity = CAPACITY;
list->size = 0;
}
// 向列表添加元素,如果已满则会自动扩容
void addElement(StaticList *list, int value) {
if (list->size == list->capacity) {
// 扩容操作
list->capacity *= 2; // 双倍当前容量
int* newElements = realloc(list->elements, sizeof(int) * list->capacity);
if (newElements != NULL) { // 成功分配新空间
list->elements = newElements;
} else {
printf("Memory allocation failed.\n");
return;
}
}
list->elements[list->size++] = value;
}
// 访问指定索引的元素
int getElement(const StaticList *list, int index) {
if (index >= 0 && index < list->size) {
return list->elements[index];
}
return -1; // 索引越界处理
}
// 示例用法
int main() {
StaticList list;
initList(&list);
addElement(&list, 1);
addElement(&list, 2);
addElement(&list, 3);
for (int i = 0; i < list.size; i++) {
printf("%d ", getElement(&list, i)); // 输出:1 2 3
}
return 0;
}
```
阅读全文