64,680
社区成员
发帖
与我相关
我的任务
分享
SqList L3 = SqList();
L3.Merge(L,L2);
L3.PrintList();
/*L L2 L3 都是顺序表 程序目的是将两个有序表合并 在线性表的类中有merge函数*/
/*类中有三种初始化方式 在上面的代码运行过程中 调用了下面第三个初始化函数 然后传到Merge函数中L和L2的变量属性就变成很大的数字,运行出错 请问问题出在哪里*/
SqList();
SqList(int size);
SqList(SqList &L);
/*以下是merge函数*/
void SqList::Merge(SqList L1, SqList L2)
{
int m = 0;
//SqList merge = SqList();
MaxSize = L1.MaxSize + L2.MaxSize;
data = new ElemType[MaxSize];
int i = 0, j = 0;
while (i < L1.length&&j < L2.length)
{
if (L1.data[i] < L2.data[j])
{
data[m] = L1.data[i];
length++;
i++;
}
else
{
data[m] = L2.data[j];
length++;
j++;
}
m++;
}
if (i == L1.length)
{
while (j < L2.length)
{
data[m] = L2.data[j];
length++;
j++;
m++;
}
}
else
{
while (i < L1.length)
{
data[m] = L1.data[i];
length++;
i++;
m++;
}
}
}