求高手指导 用连表实现归并两个有序线性表的程序清单

来源:百度知道 编辑: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;