用c语言写顺序表完成顺序表创建,输入,取值,插入,删除,输出算法的实现
时间: 2024-09-28 16:08:30 浏览: 30
在C语言中,顺序表是一种简单的数据结构,它通过连续的内存空间存储元素。以下是顺序表的基本操作的实现:
1. **创建顺序表**:
```c
typedef struct List {
int* data; // 存储元素的指针
int size; // 列表当前元素的数量
int capacity; // 初始容量
} List;
// 创建空列表
List createList(int capacity) {
List list;
list.data = malloc(capacity * sizeof(int));
if (!list.data) {
printf("Memory allocation failed.\n");
return NULL;
}
list.size = 0;
list.capacity = capacity;
return list;
}
```
2. **输入(插入)**:
```c
void insert(List* list, int value) {
if (list->size == list->capacity) {
list->capacity *= 2; // 如果满了,扩大一倍容量
list->data = realloc(list->data, list->capacity * sizeof(int));
if (!list->data) {
printf("Memory reallocation failed.\n");
exit(1);
}
}
list->data[list->size++] = value;
}
```
3. **取值**:
```c
int getValue(List* list, int index) {
if (index < 0 || index >= list->size) {
printf("Index out of range.\n");
return -1;
}
return list->data[index];
}
```
4. **删除**:
```c
void delete(List* list, int index) {
if (index < 0 || index >= list->size) {
printf("Index out of range.\n");
return;
}
memmove(&list->data[index], &list- 1));
list->size--;
}
```
5. **输出**:
```c
void printList(List* list) {
for (int i = 0; i < list->size; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
```
阅读全文