高手帮帮忙:已知线性表la和lb中的数据元素按值非递减有序排列,现要求将la和lb归并为一个新的线性表lc,

来源:百度知道 编辑:UC知道 时间:2024/06/03 13:24:30
已知线性表la和lb中的数据元素按值非递减有序排列,现要求将la和lb归并为一个新的线性表lc,且lc中的数据元素仍按值非递减有序排列。

你可以试着再自己写一个更好的。

#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 10
typedef struct
{
int elem[MAXSIZE];
int len;
}sqlist;

void merge(sqlist *la,sqlist *lb,sqlist *lc)
{
int i,j,k;
i=j=k=0;
if(la->len+lb->len<=MAXSIZE)
{
while(i<la->len&&j<lb->len)
{
if(la->elem[i]<lb->elem[j])
{
lc->elem[k]=la->elem[i];
i++;
k++;
}
else
{
lc->elem[k]=lb->elem[j];
j++;
k++;
}
}
while(i<la->len)
{
lc->elem[k]=la->elem[i];
i++;
k++;
}