程序代码:
已知 LA = (3, 5, 8, 11) LB = (2, 6, 8, 9, 11, 15, 20)
非递增排列到新的线性表LC。
void MergeList(List La, List Lb, List &Lc)//归并La,Lb得到新的线性表Lc,Lc的数据元素也按值非递增排列;
{
InitList(Lc);
La_len = ListLength(La); Lb_len = ListLength(Lb);
i = La_len; j = Lb_len;
k = 0;
while((i <= La_len) && (i >= 0) && ((j <= Lb_len) && (j >= 0)))
{
GetElem(La, i, ai); GetElem(Lb, j, bj);
if(ai <= bj)
{
ListInsert(Lc, ++k, ai);
--i;
}
else
{
ListInsert(Lc, ++k, bj);
--j;
}
while(i <= La_len)
{
GetElem(La, --i, ai);
ListInsert(Lc, ++k, ai);
}
while(j <= Lb_len)
{
GetElem(Lb, --j, bj);
ListInsert(Lc, ++k, bj);
}
}
}//MergeList
非递增排列到新的线性表LC。
void MergeList(List La, List Lb, List &Lc)//归并La,Lb得到新的线性表Lc,Lc的数据元素也按值非递增排列;
{
InitList(Lc);
La_len = ListLength(La); Lb_len = ListLength(Lb);
i = La_len; j = Lb_len;
k = 0;
while((i <= La_len) && (i >= 0) && ((j <= Lb_len) && (j >= 0)))
{
GetElem(La, i, ai); GetElem(Lb, j, bj);
if(ai <= bj)
{
ListInsert(Lc, ++k, ai);
--i;
}
else
{
ListInsert(Lc, ++k, bj);
--j;
}
while(i <= La_len)
{
GetElem(La, --i, ai);
ListInsert(Lc, ++k, ai);
}
while(j <= Lb_len)
{
GetElem(Lb, --j, bj);
ListInsert(Lc, ++k, bj);
}
}
}//MergeList