【线性表】用静态数组插入元素

因为脱离C语言的学习已有几年之久,最近才重新回来学习数据结构。有些不好之处敬请见谅。

遇到的问题:
1.给数组赋值这里一直有问题,如果在主函数中写L.data[]={}会报错,也不知道是不是因为我用的dev-c++的缘故,直接对data数组赋值的话,就没有对线性表中的数组赋值,因此最后改为用一个赋值函数一个一个赋值。此处也可以用scanf函数依次键盘键入每个数。
2.bool函数这里是为了算法的健壮性,否则可能出现溢出等情况。因为线性表是一个接着一个的,意思就是不能a[1],a[2]后面直接接a[8]。

//在第几个位置插入什么元素的算法 
#include <stdio.h>
#define MaxSize 10
typedef struct{
	int data[MaxSize];//用静态数组存放元素 
	int length;
} Sqlist;
void InitList(Sqlist &L){
	for(int i=0;i<MaxSize;i++){
		L.data[i]=0;
	}
	L.length=0;
}
bool insert(Sqlist &L,int a,int b){
	if(a<1||a>L.length+1)
	return false;
	
	if(L.length>MaxSize)
	return false;
	
	for(int i=L.length;i>=a;i--){
		L.data[i]=L.data[i-1];	
	}
	L.data[a-1]=b;
	L.length++;
	return true;
} 
void output(Sqlist &L){
	for(int i=0;i<L.length;i++){
		printf("L.data[%d]=%d\n",i,L.data[i]);
	}
}
void fuzhi(Sqlist &L){
	for(int i=0;i<L.length;i++){
		int data[]={1,3,5,7,8,7};
		L.data[i]=data[i];
	}
}
int main(){
	Sqlist L;
	InitList(L);
	L.length=6;
	fuzhi(L);
	insert(L,4,3);
	output(L);
	//for(int i=0;i<L.length;i++){
//		printf("L.data[%d]=%d\n",i,data[i]);
//	}
	return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值