C语言实现严蔚敏数据结构静态顺序表的增删改查

注意此代码使用了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;
}

创作不易,点个赞呗

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值