用c语言做一个简单的顺序表结构实现了初始化、显示、插入三个基本操作再加上加上完成以下功能 1.删除指定位置的元素 2.查找指定元素的位置 3.修改指定位置元素的值
时间: 2024-09-30 08:09:24 浏览: 13
C语言实现动态顺序表的实现代码
在C语言中,我们可以创建一个简单的顺序表结构体,包含数组用于存储数据和两个指针指向列表的开始和结束。以下是实现顺序表的基本操作以及添加你提到的其他功能:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表结构体
typedef struct {
int* data; // 存储元素的数组
int size; // 当前大小
int capacity; // 总容量
} SeqList;
// 初始化顺序表
SeqList* create_list() {
SeqList* list = (SeqList*)malloc(sizeof(SeqList));
list->data = NULL;
list->size = 0;
list->capacity = 5; // 初始容量为5
return list;
}
// 插入元素
void insert(SeqList* list, int value) {
if (list->size == list->capacity) { // 扩容
list->capacity *= 2;
list->data = realloc(list->data, sizeof(int) * list->capacity);
}
list->data[list->size++] = value;
}
// 显示列表
void display(SeqList* list) {
for (int i = 0; i < list->size; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
// 删除指定位置的元素
void delete(SeqList* list, int index) {
if (index >= 0 && index < list->size) {
memmove(&list- 1));
list->size--;
} else {
printf("Invalid index.\n");
}
}
// 查找指定元素的位置
int find(SeqList* list, int value) {
for (int i = 0; i < list->size; i++) {
if (list->data[i] == value)
return i;
}
return -1; // 如果未找到,则返回-1
}
// 修改指定位置元素的值
void update(SeqList* list, int index, int new_value) {
if (index >= 0 && index < list->size) {
list->data[index] = new_value;
} else {
printf("Invalid index.\n");
}
}
int main() {
SeqList* list = create_list();
// 使用insert(), display(), delete(), find(), update()等函数操作列表...
return 0;
}
```
阅读全文