C语言之顺序表

顺序表是计算机内部存储的一张线性表,这里用一组连续的数组向大家介绍详细表。

首先是定义顺序表的长度

#define MaxSize 10

接下来是向顺序表中添加元素:

/*
参数:
	sqlist:顺序表的首地址
	len:   顺序表的长度
	i:     插入元素的位置
	num:   插入元素的值
返回值:无
*/
void Input_Elem(int sqlist[],int *len,int i,int num)
{
	int t;
	if((*len == MaxSize)||( i < 1 )||(i > *len+1))
	{
		printf("插入元素位置出错!\n");
		return ;
	}
	for(t = *len - 1 ;t > i-1 ; t--)
	{
		sqlist[t+1] = sqlist[t];
	}
	sqlist[i-1] = num;
	*len = *len +1;
}

那么插入之后应该如何删除顺序表的元素呢?

/*
参数:
	sqlist:顺序表的首地址
	*len:  顺序表的长度
	i:     删除元素的位置
返回值:无
*/
void Del_Elem(int sqlist[],int *len,int i)
{
	int j;
	if((i<1)||(i>len))
	{
		printf("删除元素位置出错!\n");
		return ;
	}
	for(j = i;j<*len;j++)
	{
		sqlist[j-1] = sqlist[j];
	}
	*len = *len - 1;  
}

再加上测试代码

int main()
{
	int Sqlist[MaxSize]; / /定义一个静态顺序表
	int len = 6;   //用于记录顺序表的长度,初始长度为6                            
	int i;
	printf("请输入6个数字:");
	for(i=0;i<len;i++)
		scanf("%d",&Sqlist[i]); 
	printf("你输入的元素为:");
	for(i=0;i<len;i++)
		printf("%d ",Sqlist[i]);    
	printf("\n顺序表中剩余的空间为 %d\n\n",MaxSize - len);
	
	//在表中第3位置插入整数0
	Input_Elem(Sqlist,&len,3,0);         
	printf("插入操作之后的顺序表为:");
	for(i=0;i<len;i++)
		printf("%d ",Sqlist[i]); 
	printf("\n顺序表中剩余的空间为 %d\n\n",MaxSize - len); 
	
	//*在表中第11位置插入整数0
	Input_Elem(Sqlist,&len,11,0);         
	printf("插入操作之后的顺序表为:");
	for(i=0;i<len;i++)
		printf("%d ",Sqlist[i]); 
	printf("\n顺序表中剩余的空间为 %d\n\n",MaxSize - len); 
	
	//删除顺序表中的第6个元素
	Del_Elem(Sqlist,&len,6);             
	printf("删除操作之后的顺序表为:");
	for(i=0;i<len;i++)
		printf("%d ",Sqlist[i]);         
	printf("\nThe spare length is %d\n",MaxSize - len); 
	return 0;
}
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值