#include<stdio.h>
#include <conio.h>
#include<stdlib.h>
#include<iostream.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct
{
ElemType *elem;
int length;
}SqList;
SqList LA,LB,LC;
void InitList(SqList &LA,SqList &LB)
{
LA.elem = new ElemType[MAXSIZE];
LB.elem = new ElemType[MAXSIZE];
if((!LA.elem)||(!LB.elem))
{
cerr<<"存储分配错误!"<<endl;
exit(1);
}
LA.length=0;
LB.length=0;
}
int Length(SqList &L)
{
return L.length;
}
int Search(SqList &L,ElemType x)
{
for (int i=1;i<=L.length;i++)
if(L.elem[i-1]==x) return i;
return 0;
}
bool Insert(SqList &L,int i,ElemType &x)
{
if(L.length==MAXSIZE) return false;
if(i<0||i>L.length+1) return false;
for(int j=L.length;j>=i;j--)
L.elem[j]=L.elem[j-1];
L.elem[i-1]=x;
L.length++;
return true;
}
void MergeList_Sq(SqList &LA,SqList &LB,SqList &LC)
{
int *pc;int *pa;int *pb;
int *pa_last;int *pb_last;
LC.length=LA.length+LB.length;
LC.elem=new ElemType[LC.length];
pc=LC.elem;
pa=LA.elem;
pb=LB.elem;
pa_last=LA.elem+LA.length-1;
pb_last=LB.elem+LB.length-1;
while((pa<=pa_last)&&(pb<=pb_last))
{
if(*pa<=*pb) *pc++=*pa++;
else *pc++=*pb++;
}
while(pa<=pa_last) *pc++=*pa++;
while(pb<=pb_last) *pc++=*pb++;
}
void main()
{
int a,b;
SqList LA,LB;
InitList(LA,LB);
cout<<"请输入LA的长度:";
cin>>a;
cout<<"请输入LA的元素:";
for(int j=0;j<a;j++)
cin>>LA.elem[j];
cout<<"请输入LB的长度:";
cin>>b;
cout<<"请输入LB的元素:";
for(int k=0;k<b;k++)
cin>>LB.elem[k];
LA.length=a;
LB.length=b;
MergeList_Sq(LA,LB,LC);
int n=Length(LC);
cout<<"LC的元素:"<<endl;
for(int i=0;i<n;i++)
cout<<LC.elem[i]<<" ";
cout<<endl;
}
有序集合并集
最新推荐文章于 2022-10-15 11:28:32 发布