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

顺序表的查找、插入操作(20级教学用)

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

顺序表的查找、插入操作(20级教学用)

#include
#define ERROR 0
#define OK 1
#define MAXSIZE 100
typedef int ElemType;
typedef struct  
{
 ElemType elem[MAXSIZE];
 int last;

}SeqList;
 
int  Locate(SeqList L,ElemType e)
{	int i=0 ;      
    while ((i<=L.last)&&(L.elem[i]!=e) )     
	i++;
         
    if(i<=L.last)  
         return(i);  
    else	
         return(-1);  
}
//顺序表的插入 
int  InsList(SeqList *L,int i,ElemType e)
{   int k;
    if((i<1) || (i>L->last+2))     
    {  printf("插入位置i值不合法");return(ERROR);   }
    if(L->last>=MAXSIZE-1)
    {  printf("表已满无法插入");    return(ERROR);   }
    for(k=L->last;k>=i-1;k--)     
       L->elem[k+1]=L->elem[k]; 
    L->elem[i-1]=e;  
    L->last++; 
    return(OK);
}
int main(){
	SeqList l;
	int p,q,r;
	//Step1.对顺序表进行初始化
	int i;
	printf("请输入线性表的长度:");
	scanf("%d",&r);
	l.last = r-1;//最后一个元素的下标值 
	printf("请输入线性表的各元素值:n");
	for(i=0; i<=l.last; i++)
	{
		scanf("%d",&l.elem[i]);
	}
	//Step2.调用函数进行查找 
	printf("请输入要查找的元素值:n");
	scanf("%d",&q);
	p=Locate(l,q);
	if(p == -1)
		printf("在此线性表中没有该元素!n");
	else
		printf("该元素在线性表中的位置为:%dn",p);
	//Step3.接下实现顺序表插入运算
	int Insert_i,Insert_e,Insert_flag;
	printf("请输入要插入元素的位置和元素值(i,e):"); 
	scanf("%d,%d",&Insert_i,&Insert_e);
	Insert_flag=InsList(&l,Insert_i,Insert_e);
	if(Insert_flag == 1)
	{ 
		printf("在此线性表中元素插入成功!n");
		printf("新顺序表的长度为%d,",l.last+1);
		printf("各元素为:");
		for(i=0; i<=l.last; i++)
	    {
	     	printf("%d  ",l.elem[i]);
	    }
	} 
	else
		printf("在此线性表中元素插入失败!n");	
	return OK;
} 

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

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

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