求高手指导 用连表实现归并两个有序线性表的程序清单
来源:百度知道 编辑:UC知道 时间:2024/05/02 12:44:11
两个非递减有序线性表LA, LB.
现要求装两个线性表进行归并形成线性表LC,且LC依然保持非递减顺序
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//表达一
int mergelist1( const char* lap, const char *lbp,char *lc)
{
if(lap == NULL || lbp == NULL)
return -1;
while( *lap != 0 && *lbp != 0)
{
if(*lap <= *lbp)
{
*lc++ = *lap++;
}
else
{
*lc++ = *lbp++;
}
}
while(*lap) *lc++ = *lap++;
while(*lbp) *lc++ = *lbp++;
return 0;
}
//表达二
int mergelist( const char *lap, const char *lbp, char *lc)
{
int i,j; //identify current position of la and lb
if(lap == NULL || lbp == NULL)
return -1;
for(i=0, j=0; lap[i] !=0 && lbp[j]!=0;)
{
if(lap[i] <= lbp[j])
{
*lc++ = lap[i];
++i;
}
else
{
*lc++ = lbp[j];
++j;