用c语言设计程序建立一个顺序表,要求从键盘输入整数,并完成添加插入和删除元素功能,并将该顺序表的元素从屏幕显示出来。
时间: 2024-09-28 08:15:13 浏览: 9
在C语言中,我们可以使用结构体和数组来实现一个简单的顺序表。首先,我们需要定义一个结构体表示表中的元素:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义元素结构体
typedef struct {
int data; // 整数值
} Element;
// 动态分配顺序表的函数
Element* createList(int size) {
Element* list = (Element*)malloc(size * sizeof(Element));
if (!list) {
printf("内存分配失败!\n");
exit(1);
}
return list;
}
// 插入元素到列表
void insert(Element** list, int index, int value) {
if (index >= 0 && index < (*list).length) {
Element temp = {value};
memmove(&(*list)[index+1], &(*list)[index], sizeof(Element) * ((*list).length - index));
(*list)[index] = temp;
(*list)->length++;
} else {
printf("插入位置无效!\n");
}
}
// 删除元素
void delete(Element** list, int index) {
if (index >= 0 && index < (*list).length) {
memmove(&(*list)[index], &(*list)[index + 1], sizeof(Element) * ((*list).length - index - 1));
(*list)->length--;
} else {
printf("删除位置无效!\n");
}
}
// 显示列表元素
void display(Element* list) {
for (int i = 0; i < list->length; i++) {
printf("%d ", list[i].data);
}
printf("\n");
}
int main() {
int choice, num, index;
int size = 5; // 初始大小,可以根据需要动态调整
Element* list = createList(size);
while (1) {
printf("选择操作:\n");
printf("1. 添加\n");
printf("2. 删除\n");
printf("3. 显示\n");
printf("4. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入元素索引和值:\n");
scanf("%d %d", &index, &num);
insert(&list, index, num);
break;
case 2:
printf("请输入删除元素的索引:\n");
scanf("%d", &index);
delete(&list, index);
break;
case 3:
display(list);
break;
case 4:
free(list);
printf("程序已退出。\n");
return 0;
default:
printf("无效的选择!\n");
}
}
return 0;
}
```
在这个程序中,我们实现了创建、插入、删除和显示顺序表的功能。用户可以从键盘输入命令进行操作。