#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
#define Maxsize 11
typedef struct
{
int data[Maxsize];
int length;
}SqList;
void B(SqList &L4, SqList &L5, SqList &L6)
{
if(L4.length + L5.length >Maxsize)//合并和不能超出最大存储空间
return 0;
int i = 0, j = 0, k = 0;
while (L4.length > i && L5.length > j)//两个顺序表挨个做比较,把最小的先放进新的顺序表
{
if (L4.data[i] > L5.data[j])
{
L6.data[k++] = L4.data[j++];
}
else if(L4.data[i] < L5.data[j])
{
L6.data[k++] = L4.data[i++];
}
else if (L4.data[i] == L5.data[j])//当两个顺序表有一样的值时,i和j都要自增
{
L6.data[k++] = L4.data[i++];//L3.data[k++] = L2.data[j++];i++;
j++;
}
}
while (L4.length>i)//当有一方比较完了,剩下的直接按顺序放入顺序表即可
{
L6.data[k++] = L4.data[i++];
}
while (L5.length > j)
{
L6.data[k++] = L5.data[j++];
}
L6.length = k;//新的顺序表就等于k值,因为k自增了
}
void Show_List(SqList &L)
{
for (int i = 0; i < L.length; i++)
{
cout << L.data[i] << endl;
}
}
int main()
{
SqList L1 = { { 1,3,5,7,9},5 };
SqList L2 = { { 3,5,6,7,10 },5 };
SqList L3;
B(L1, L2, L3);
Show_List(L3);
system("pause");
return 0;
}
王道数据结构19页第七题
最新推荐文章于 2024-07-15 14:42:50 发布