C语言编写一个程序,分别实现顺序表的各种基本操作
时间: 2024-09-13 07:13:44 浏览: 53
在C语言中,我们可以创建一个简单的顺序表结构来存储数据并实现基本的操作,如插入、删除和查找等。这里提供一个简化的顺序表结构和几个常用操作的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表结构体
typedef struct {
int* data; // 存储元素的数组
int size; // 当前元素的数量
int capacity; // 表的容量
} List;
// 初始化列表
void init_list(List* list) {
list->data = (int*)malloc(sizeof(int) * 10);
list->size = 0;
list->capacity = 10;
}
// 插入元素到列表末尾
void insert(List* list, int value) {
if (list->size == list->capacity) {
// 扩大容量
list->capacity *= 2;
list->data = (int*)realloc(list->data, sizeof(int) * list->capacity);
}
list->data[list->size++] = value;
}
// 删除指定位置的元素
void delete(List* list, int index) {
if (index >= 0 && index < list->size) {
memmove(&list->data[index], &list- 1));
list->size--;
} else {
printf("Index out of range.\n");
}
}
// 查找元素
int find(List* list, int value) {
for (int i = 0; i < list->size; i++) {
if (list->data[i] == value) return i;
}
return -1; // 如果没找到返回-1
}
// 打印列表内容
void print_list(List* list) {
printf("List contents: ");
for (int i = 0; i < list->size; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
int main() {
List my_list;
init_list(&my_list);
// 测试插入、删除和查找
insert(&my_list, 5);
insert(&my_list, 10);
print_list(&my_list); // 输出:List contents: 5 10
delete(&my_list, 0);
print_list(&my_list); // 输出:List contents: 10
int position = find(&my_list, 10);
if (position != -1) {
printf("Found 10 at position %d.\n", position);
}
free(my_list.data);
return 0;
}
```
阅读全文