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

顺序表的查找、插入 *** 作(20级教学用),第1张

顺序表的查找、插入 *** 作(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;
} 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5703056.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存