设计程序建立一个顺序表,要求从键盘输入整数,并完成添加插入和删除元素功能,并将该顺序表的元素从屏幕显示出来。
时间: 2023-06-05 17:47:13 浏览: 251
好的,以下是程序的设计思路:
1. 定义一个顺序表结构体,包含元素数组和当前元素个数。
2. 定义添加元素函数,从键盘输入一个整数,将其添加到顺序表的末尾。
3. 定义插入元素函数,从键盘输入一个整数和插入位置,将其插入到指定位置。
4. 定义删除元素函数,从键盘输入一个要删除的元素位置,将其从顺序表中删除。
5. 定义显示元素函数,遍历顺序表的元素数组,将其打印到屏幕上。
程序代码如下:
```c
#include <stdio.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int length;
} SeqList;
void addElement(SeqList *L, int x) {
if (L->length >= MAXSIZE) {
printf("顺序表已满,无法添加元素!\n");
return;
}
L->data[L->length] = x;
L->length++;
}
void insertElement(SeqList *L, int x, int pos) {
if (pos < 1 || pos > L->length + 1) {
printf("插入位置不合法!\n");
return;
}
if (L->length >= MAXSIZE) {
printf("顺序表已满,无法插入元素!\n");
return;
}
for (int i = L->length; i >= pos; i--) {
L->data[i] = L->data[i-1];
}
L->data[pos-1] = x;
L->length++;
}
void deleteElement(SeqList *L, int pos) {
if (pos < 1 || pos > L->length) {
printf("删除位置不合法!\n");
return;
}
for (int i = pos; i < L->length; i++) {
L->data[i-1] = L->data[i];
}
L->length--;
}
void display(SeqList L) {
printf("顺序表的元素为:");
for (int i = ; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int main() {
SeqList L;
L.length = ;
int choice, x, pos;
while (1) {
printf("请选择操作:\n");
printf("1. 添加元素\n");
printf("2. 插入元素\n");
printf("3. 删除元素\n");
printf("4. 显示元素\n");
printf("5. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入要添加的元素:");
scanf("%d", &x);
addElement(&L, x);
break;
case 2:
printf("请输入要插入的元素和位置:");
scanf("%d %d", &x, &pos);
insertElement(&L, x, pos);
break;
case 3:
printf("请输入要删除的元素位置:");
scanf("%d", &pos);
deleteElement(&L, pos);
break;
case 4:
display(L);
break;
case 5:
return ;
default:
printf("输入有误,请重新输入!\n");
}
}
return ;
}
```