数据结构(C语言版) 线性表 算法设计Demo29

Posted 奕兴_Victor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构(C语言版) 线性表 算法设计Demo29相关的知识,希望对你有一定的参考价值。

将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表。

[算法分析]

首先,按顺序不断取两个顺序表表头较小的结点存入新的顺序表中。然后,看哪个表还有剩余,将剩余的部分加到新的顺序表后面。

[算法描述]

bool Merge(SeqList A,SeqList B,SeqList &C)
	//将有序顺序表A与B合并为一个新的有序顺序表C
	if(A.lenght+B.lenght>C.maxSize) //大于顺序表的最长长度
		return false;
		int i=0,j=0,k=0;
		while(i<A.lenght&&j<B.lenght) //循环,两两比较,小者存入结果表
			if(A.data[i]<=B.data[j])
				C.data[k++]=A.data[i++];
			else
				C.data[k++]=B.data[j++];
		
		while(i<A.lenght) //还剩一个没有比较完的顺序表
			C.data[k++]=A.data[i++];
		while(j<B.lenght)
			C.data[k++]=B.data[j++];
		C.lenght=k;
		return true;

以上是关于数据结构(C语言版) 线性表 算法设计Demo29的主要内容,如果未能解决你的问题,请参考以下文章

数据结构(C语言版) 线性表 算法设计Demo18

数据结构(C语言版) 线性表 算法设计Demo17

数据结构(C语言版) 线性表 算法设计Demo19

数据结构(C语言版) 线性表 算法设计Demo11

数据结构(C语言版) 线性表 算法设计Demo26

数据结构(C语言版) 线性表 算法设计Demo24