用c语言编写程序完成顺序表的初始化,查找,插入,删除,输出,撤销等操作
时间: 2024-10-19 10:03:36 浏览: 58
在C语言中,我们可以使用数组来模拟顺序表。下面是一个简化的例子,展示了如何实现顺序表的基本操作:初始化、查找、插入、删除、输出以及撤销(实际上撤销功能在这类简单数据结构上并不常见,因为它通常涉及到复杂的数据结构如栈或队列)。这里假设我们有一个整型的顺序表。
```c
#include <stdio.h>
#define MAX_SIZE 10
typedef struct {
int data[MAX_SIZE]; // 存储数据的数组
int size; // 当前大小
} SequenceList;
// 初始化顺序表
SequenceList initList() {
SequenceList list;
list.size = 0;
return list;
}
// 查找指定值的位置
int search(const SequenceList* list, int target) {
for (int i = 0; i < list->size; ++i) {
if (list->data[i] == target)
return i;
}
return -1; // 没找到目标值,返回-1
}
// 插入元素
void insert(SequenceList* list, int position, int value) {
if (position < 0 || position > list->size) {
printf("Invalid position.\n");
return;
}
list->data[position] = value;
list->size++;
}
// 删除元素
void delete(SequenceList* list, int position) {
if (position < 0 || position >= list->size) {
printf("Invalid position.\n");
return;
}
for (int i = position; i < list->size - 1; ++i)
list->data[i] = list->data[i + 1];
list->size--;
}
// 输出顺序表
void printList(const SequenceList* list) {
for (int i = 0; i < list->size; ++i)
printf("%d ", list->data[i]);
printf("\n");
}
int main() {
SequenceList list = initList();
// 添加元素、查找、删除和打印示例
insert(&list, 0, 5);
insert(&list, 1, 10);
printList(&list);
int index = search(&list, 10); // 查找10
if (index != -1)
printf("Found at position %d.\n", index);
delete(&list, index); // 删除10
printList(&list);
return 0;
}
```
阅读全文