用C语言编程实现一个对顺序表进行基本操作的系统,主要包括表的创建,输入,查询,取值,插入,删除,输出等操作
时间: 2024-05-21 21:10:59 浏览: 89
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 定义顺序表的最大长度
typedef struct SeqList {
int data[MAX_SIZE]; // 存储顺序表的数组
int length; // 顺序表的长度
} SeqList;
// 创建顺序表
void create(SeqList *L) {
int i, len;
printf("请输入顺序表的长度:");
scanf("%d", &len);
printf("请输入顺序表的元素:");
for (i = 0; i < len; i++) {
scanf("%d", &L->data[i]);
}
L->length = len;
printf("创建成功!\n");
}
// 输入顺序表
void input(SeqList *L) {
int i, len;
printf("请输入顺序表的长度:");
scanf("%d", &len);
printf("请输入顺序表的元素:");
for (i = 0; i < len; i++) {
scanf("%d", &L->data[i]);
}
L->length = len;
printf("输入成功!\n");
}
// 查询顺序表
void search(SeqList L) {
int i, key;
printf("请输入要查询的元素:");
scanf("%d", &key);
for (i = 0; i < L.length; i++) {
if (L.data[i] == key) {
printf("%d在第%d个位置\n", key, i + 1);
return;
}
}
printf("查无此元素\n");
}
// 取值
void get(SeqList L) {
int i;
printf("请输入要取值的位置:");
scanf("%d", &i);
if (i < 1 || i > L.length) {
printf("位置错误!\n");
} else {
printf("第%d个元素的值为%d\n", i, L.data[i - 1]);
}
}
// 插入
void insert(SeqList *L) {
int i, pos, key;
printf("请输入要插入的位置:");
scanf("%d", &pos);
if (pos < 1 || pos > L->length + 1) {
printf("位置错误!\n");
return;
}
printf("请输入要插入的元素:");
scanf("%d", &key);
for (i = L->length - 1; i >= pos - 1; i--) {
L->data[i + 1] = L->data[i];
}
L->data[pos - 1] = key;
L->length++;
printf("插入成功!\n");
}
// 删除
void del(SeqList *L) {
int i, pos;
printf("请输入要删除的位置:");
scanf("%d", &pos);
if (pos < 1 || pos > L->length) {
printf("位置错误!\n");
return;
}
for (i = pos - 1; i < L->length - 1; i++) {
L->data[i] = L->data[i + 1];
}
L->length--;
printf("删除成功!\n");
}
// 输出
void output(SeqList L) {
int i;
printf("顺序表的元素为:");
for (i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int main() {
SeqList L;
int choice = 0;
while (1) {
printf("1.创建顺序表\n");
printf("2.输入顺序表\n");
printf("3.查询顺序表\n");
printf("4.取值\n");
printf("5.插入\n");
printf("6.删除\n");
printf("7.输出\n");
printf("0.退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
create(&L);
break;
case 2:
input(&L);
break;
case 3:
search(L);
break;
case 4:
get(L);
break;
case 5:
insert(&L);
break;
case 6:
del(&L);
break;
case 7:
output(L);
break;
case 0:
exit(0);
default:
printf("输入错误,请重新选择!\n");
}
}
return 0;
}
阅读全文