注意此代码使用了C++引用,运行代码时要将文件后缀名改为.cpp
#define _CRT_SECURE_NO_WARNINGS//这里由于VisualStudio2019不能直接使用scanf,故引入此头文件
#include<stdio.h>
#include<stdlib.h>
#define Elemtype int //可以不定义,全部使用int,或float等
#define MaxSize 50
typedef struct //定义结构体
{
Elemtype array[MaxSize];
int len;
}Lqlist;
bool ListInsert(Lqlist &L,int i,Elemtype &e) //顺序表的插入
{
if (i > L.len) {
printf("插入失败\n");
return false;
}
else if (L.len >= MaxSize) {
printf("插入失败\n");
return false;
}
else {
for (int j = L.len;i<=j+1; j--) {
L.array[j + 1] = L.array[j];
}
L.array[i - 1] = e;
L.len++;
printf("插入成功\n");
return true;
}
}
bool ListDelete(Lqlist& L, int i)//顺序表的删除
{
if (i<1 || i>L.len) {
printf("删除失败\n");
return false;
}
if (L.len <= 0) {
printf("删除失败\n");
return false;
}
else {
for (int j = i; j < L.len; j++) {
L.array[j - 1] = L.array[j];
}
L.len--;
printf("删除成功\n");
return true;
}
}
bool ListModify(Lqlist& L, int i, Elemtype e)//顺序表的修改
{
if (i < 1 || i > L.len) {
printf("修改失败\n");
return false;
}
else {
L.array[i - 1] = e;
printf("修改成功\n");
return true;
}
}
int ListSearch(Lqlist L, Elemtype e) //顺序表的查找
{
int j;
for (j = 0; j < L.len; j++) {
if (L.array[j]== e) {
return j+1;
}
}
return 0;
}
void ListPrint(Lqlist L)//顺序表的打印
{
for (int i = 0; i < L.len; i++) {
printf("%3d", L.array[i]);
}
}
int main()//主函数
{
Lqlist L;
printf("请输入五个数组元素:\n");
for (int i = 0; i < 5; i++) {
scanf("%d", &L.array[i]);
}
L.len = 5;
printf("原始数组为:\n");
ListPrint(L);
printf("\n");
Elemtype e;
printf("请输入你要插入第二个位置的数:\n");
scanf("%d", &e);
ListInsert(L, 2, e);
ListPrint(L);
printf("\n");
int d;
printf("请输入你要删除的位置:\n");
scanf("%d", &d);
ListDelete(L, d);
ListPrint(L);
printf("\n");
int location;
Elemtype ex;
printf("请输入你要修改的位置和值:\n");
scanf("%d%d", &location, &ex);
ListModify(L, location, ex);
ListPrint(L);
int s;
printf("\n");
printf("请输入你要查找的元素:\n");
scanf("%d",&s);
int s_location= ListSearch(L, s);
if (s_location) {
printf("元素%d的位置是%d", s, s_location );
}
else {
printf("顺序表中没有这个元素");
}
printf("\n");
printf("\n\n");
return 0;
}
创作不易,点个赞呗