求两个顺序表的交集
【问题描述】将两个顺序表的交集(设定表中没有重复元素),放在一个顺序表中并输出
【输入形式】
表1的元素个数
元素
表2的元素个数
元素
【输出形式】交集
【样例输入】
3
2 9 6
5
1 2 4 6 8
【样例输出】2 6
#include<stdlib.h>
#include<stdio.h>
#include<iostream>
using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef int ElemType;
#define MAXSIZE 100 //最大长度
typedef struct {
ElemType *elem; //指向数据元素的基地址
int length; //线性表的当前长度度
}SqList;
Status InitList_Sq(SqList &L){ //构造一个空的顺序表L
L.elem=new ElemType[MAXSIZE]; //为顺序表分配空间
if(!L.elem) exit(OVERFLOW); //存储分配失败
L.length=0; //空表长度为0
return OK;
}
int main()
{
SqList L,R,K;
InitList_Sq(L);
InitList_Sq(R);
InitList_Sq(K);
cin>>L.length;
for(int i=0;i<=L.length;i++)
{
cin>>L.elem[i];
}
cin>>R.length;
for(int j=0;j<=R.length;j++)
{
cin>>R.elem[j];
}
int k=0;
for(int i=0;i<=L.length;i++)
{
for(int j=0;j<=R.length;j++)
{
if(L.elem[i]==R.elem[j])
{
K.elem[k]=L.elem[i];
k++;
}
}
}
K.length=k;
for(int i=0;i<K.length;i++)
{
printf("%d ",K.elem[i]);
}
return 0;
}