数据结构之线性表的合并

本文介绍了如何使用C语言解决数据结构中的线性表合并问题。在非递减排序的线性表La和Lb基础上,将它们合并到新的线性表Lc中,并保持非递减顺序。在实现过程中,由于初始代码的循环控制错误导致了死循环,通过调试发现问题并进行了修正,强调了编程中细心的重要性。
摘要由CSDN通过智能技术生成

           今天用C语言实现了数据结构中线性表的合并,即:

      已知La与Lb中的数据元素按照非递减排序,将La,Lb的元素合并到Lc中,要求Lc中的数据元素也按照非递减排列。

最初由于粗心,我是这么写的:

void mergeList3(sqlist * La,sqlist * Lb,sqlist * Lc)
{
	//由于不调用已经编写好的函数,所以我们必须自己处理存储空间
	 // 分配问题,同事自己取得La与Lb的数据元素进行比较
	elemtype *la,*lb,*lc;
	Lc->size=La->length+Lb->length;
	Lc->length=La->length+Lb->length;
	la=La->elem;
	lb=Lb->elem;
	Lc->elem=(elemtype*)malloc(Lc->size*sizeof(elemtype));
	if(!Lc->elem)
		exit(OVERFLOW2);
	lc=Lc->elem;
	while((la<=(la+La->length-1))&&(lb<=(lb+Lb->length-1))){
		if(*la<=*lb){
			*lc++=*la++;
		}else{
			*lc++=*lb++;
		}
	}
	while(la<=(la+La->length-1)){
		*lc++=*la++;
	}
	while(lb<=(lb+Lb->length-1)){
		*lc++&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值