用C语言写一个包括插入,删除等在内的顺序表的代码
时间: 2024-09-19 22:13:10 浏览: 43
在C语言中,我们可以使用结构体定义一个简单的顺序表(也称作数组),并提供插入和删除元素的功能。下面是一个基础的示例,假设我们有一个整数类型的顺序表:
```c
#include <stdio.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int size;
} List;
// 插入元素到列表末尾
void insert(List *list, int value) {
if (list->size == MAX_SIZE) {
printf("List is full.\n");
return;
}
list->data[list->size++] = value;
}
// 删除指定位置的元素(从0开始计数)
void delete(List *list, int index) {
if (index >= list->size || index < 0) {
printf("Invalid index.\n");
return;
}
for (int i = index; i < list->size - 1; ++i) {
list->data[i] = list->data[i + 1];
}
--list->size;
}
// 打印整个列表
void print_list(List *list) {
for (int i = 0; i < list->size; ++i) {
printf("%d ", list->data[i]);
}
printf("\n");
}
int main() {
List my_list = { .size = 0 }; // 初始化为空列表
insert(&my_list, 5);
insert(&my_list, 10);
print_list(&my_list); // 输出: 5 10
delete(&my_list, 0);
print_list(&my_list); // 输出: 10
return 0;
}
```
这个例子中,`insert`函数用于在列表末尾添加元素,`delete`函数用于删除指定索引处的元素,并通过调整后续元素的位置来保持列表连续。注意,由于C语言数组下标是从0开始的,所以`delete`操作会移动后面的元素一位。
阅读全文