设计一个顺序表,实现以下操作: 1.向顺序表插入10个整数; 2.查找值为x的元素,若找到则将其删除; 3.输出表中所有元素。 要求:对上述每个操作各设计为一个子函数,并设计一个主函数调用各子函数,以验证所设计的有序顺序表的正确性。
时间: 2024-09-10 08:28:45 浏览: 71
为了设计一个简单的顺序表数据结构并实现以上操作,我们可以使用C语言中的数组作为底层存储,然后定义三个函数:`insert()`, `search_and_remove()` 和 `print_list()`。这里我们假设数组的大小足够大,以便在需要时进行扩展。下面是相关的代码实现:
```c
#include <stdio.h>
#define MAX_SIZE 100
// 顺序表的结构体定义
typedef struct {
int data[MAX_SIZE]; // 存储元素的数组
int size; // 当前元素的数量
} SequenceList;
// 插入函数
void insert(SequenceList* list, int value) {
if (list->size == MAX_SIZE) {
printf("Error: List is full.\n");
return;
}
list->data[list->size++] = value;
}
// 查找并删除值为x的元素(如果存在)
void search_and_remove(SequenceList* list, int x) {
for (int i = 0; i < list->size; i++) {
if (list->data[i] == x) {
for (int j = i; j < list->size - 1; j++) {
list->data[j] = list->data[j + 1];
}
list->size--;
break;
}
}
}
// 打印列表中所有元素
void print_list(const SequenceList* list) {
printf("Elements in the list: ");
for (int i = 0; i < list->size; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
// 主函数
int main() {
SequenceList myList;
myList.size = 0;
// 向顺序表插入10个整数
for (int i = 1; i <= 10 && myList.size < MAX_SIZE; i++) {
insert(&myList, i);
}
// 查找值为5并删除(如果存在)
int target = 5;
search_and_remove(&myList, target);
// 输出表中所有元素
print_list(&myList);
return 0;
}
```
阅读全文