#include "iostream"
#define MAXSIZE 100
#define OK 1
#define ERROR 0
using namespace std;
typedef int ElemType;
typedef int Status;
typedef struct{
ElemType *elem;
int length;
}SqList;
Status InitList(SqList &L)
{
L.elem=new ElemType[MAXSIZE];
if(!L.elem) return ERROR;
L.length=0;
return OK;
}
Status CreateList(SqList &L)
{
int n;
cout<<"请输入线性表的长度:";
cin>>n;
cout<<"请输入表中的元素:";
for(int i=0;i<n;i++)
{
cin>>L.elem[i];
}
L.length=n;
return OK;
}
Status ShowList(SqList &L)
{
cout<<"现在线性表的元素有:";
for(int i=0;i<L.length;i++){
cout<<L.elem[i];
}
return OK;
}
Status MergeList(SqList &LA,SqList &LB,SqList &LC)
{
ElemType *pa_last,*pb_last,*pc,*pb,*pa;
LC.length=LA.length+LB.length;
LC.elem=new ElemType[LC.length];
pc=LC.elem;
pb=LB.elem;
pa=LA.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++);
}
int main()
{
SqList LA,LB,LC;
InitList(LA);
InitList(LB);
CreateList(LA);
CreateList(LB);
MergeList(LA,LB,LC);
ShowList(LC);
}
线性表的并集
最新推荐文章于 2024-03-24 11:11:57 发布