#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<stdlib.h>
#define elemtype int
#define MaxSize 100
typedef struct MyStruct
{
elemtype elem[MaxSize];
int last;//数组最大下标
}Link;
bool Inser(Link* L, int k, int e);//在k的前面插入
bool Find(Link* L, int e);
bool Delet(Link* L, int k, int* e);
int main() {
int n;
int k,e;
Link* L = (Link*)malloc(sizeof(Link));
L->last = 0;
while (1) {
printf("请输入操作:1.插入 2.查找。3.删除\n");
scanf("%d", &n);
if (n == 1) {
printf("插入位置和数据");
scanf("%d%d", &k, &e);
if (Inser(L, k, e)) printf("插入成功\n");
else printf("插入失败\n");
}
else if (n == 2) {
printf("请输入查找的数据");
scanf("%d", &e);
if (Find(L, e)) printf("查找成功\n");
else printf("查找失败\n");
}
else {
printf("请输入删除的位置");
scanf("%d", &k);
if (Delet(L, k, &e)) printf("删除成功,数据是%d\n", e);
else printf("删除失败\n");
}
}
}
bool Inser(Link* L, int k, int e) {
if (k<1 || k>L->last + 2) {
printf("插入不合理\n");
return false;
}
else {
for (int i = L->last;i >= k - 1;i--) {
L->elem[i + 1] = L->elem[i];
}
L->elem[k - 1] = e;
L->last++;
return true;
}
}
bool Find(Link* L, int e) {
for (int i = 0;i <= L->last;i++) {
if (L->elem[i] == e) {
printf("位置%d", i + 1);
return true;
}
}
return false;
}
bool Delet(Link* L, int k, int* e) {
if (k<1 || k>L->last + 1) {
printf("删除位置不合理\n");
return false;
}
else {
*e = L->elem[k - 1];
for (int i = L->last;i >= k ;i--) {
L->elem[i - 1] = L->elem[i];
}
L->last--;
return true;
}
}
线性表的顺序存储
最新推荐文章于 2024-09-27 19:15:27 发布
该代码定义了一个结构体用于管理整型数组,并实现了插入元素、查找元素和删除指定位置元素的功能。程序通过用户输入选择操作,然后执行相应的功能,如在指定位置插入元素,查找元素或删除元素。
摘要由CSDN通过智能技术生成