栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

顺序表的插入与删除--C语言

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

顺序表的插入与删除--C语言

如标题,只是一个简单的顺序表的插入和删除,希望能帮到各位初学的同学。只起参考作用

#include 
#include 

typedef struct//定义顺序表的结构体类型
{
	int elem[20];//定义一个存放数据的数组
	int last;//last在本段代码中相当于长度
}SeqList;

int DelList(SeqList *L)//【删除操作】
{
	int k,i;
	printf("请用户输入删除位置: ");
	scanf("%d",&i);
	if( (i<1) || (i>L->last) )
	{
		printf("删除位置不合法!!!n");
		return (0);
	} 
	for(k=i;k<=L->last;k++)
			L->elem[k-1]=L->elem[k];
		L->last--;
	
	return 1;
}
int InsList(SeqList *L)//【插入操作】
{
	int k,i,e;
	printf("请用户输入插入元素位置和插入元素(格式如:3 3): ");
	scanf("%d %d",&i,&e);
	if( (i<1) || (i>L->last+1) )
	{
		printf("插入位置不合法!!!n");
		return (0);//插入位置不合法
	}
	for(k=L->last;k>=i-1;k--)
		L->elem[k+1]=L->elem [k];
	L->elem [i-1]=e;
	L->last ++;
	return (1);
}
void Display(SeqList *L)//【输出顺序表】
{
	int i;
	printf("线性表中的元素如下:n");
	for(i=0;i<=L->last-1;i++)
		printf("%d ",L->elem[i]);
	printf("n ");
}
main()
{                   
	int i, j=0 ,a=1;
	SeqList L;
	L.elem[0]=0 ;
	L.last=0 ;
	printf("请输入5个数字:n");
	for( i=0 ; i<=4 ; i++)
	{
		scanf("%d",&j);
		L.elem[i]=j;
		L.last++;
	}
	printf("n线性表的长度为:%dn",L.last);
	Display(&L);//先填充顺序表

	printf("选择:输入1 ->删除,输入2-> 插入操作,输入3->退出n");
	while (a!=3)
	{
		printf("请用户做出选择:");
		scanf("%d",&a);
		switch (a)
		{
		case (1)://【删除】
			{
				DelList(&L);
				Display(&L);break;
			}
		case (2)://【插入】
			{
				InsList(&L);
				Display(&L);break;
			}
		case (3):break;
		}
		printf("n ");//纯粹为了美观
	}
	printf("**已退出,感谢您的使用n**");
}

运行结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/529693.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号