码迷,mamicode.com
首页 > 其他好文 > 详细

链表归并代码

时间:2015-01-27 16:22:18      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:链表归并   两个链表合并   

void mergelist(list La,list Lb,list &Lc)
{
	//已知线性表LA和LB中的数据元素按值非递减排列
	//归并LA和LB得到新的线性表LC,LC中的元素也按值非递减

	Initlist(Lc);//初始化一个新的链表LC
	i=j=1;k=0;
	La_len=ListLength(La);//分别求出La和Lb的长度
	Lb_len=ListLength(Lb);//La和Lb都非空。
	{
		GetElem(La,i,ai);
		GetElem(Lb,i,bj);
		if(ai<=bj)//如果ai<bj,那么就让ai插入链表Lc中。
		{
			ListInsert(Lc,++k,ai);
			i++;//让链表La中的下一个元素继续和Lb中的元素比较。
		}
		else
		{
			ListInsert(Lc,++k,bj);//如果ai>bj,那么就让bj插入到链表Lc中
			j++;
		}
	}

	while((i<=La_len)&&(j>Lb_len))//当最后链表La还有数值,而Lb没有数值的时候
	{
		GetElem(La,i++,ai);//让所有链表La的数值都插入到Lc链表中
		ListInsert(Lc,k++,ai);
	}

	while((j<=Lb_len)&&(i>Lb_len))//当最后链表Lb还有数值,而La没有数值的时候
	{
		GetElem(La,j++,bj);
		ListInsert(Lc,k++,bi);//让所有链表Lb的数值都插入到Lc链表中
	}
}

链表归并代码

标签:链表归并   两个链表合并   

原文地址:http://blog.csdn.net/u012989536/article/details/43195619

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!