题目
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int *elem; //存储空间基址,体现动态性
int length; //当前表的长度
int listsize; //当前分配的存储容量
}SqList;
void InitList_Sq(SqList &L){
L.elem=(int*)malloc(sizeof(int)*1);
L.length=0;
L.listsize=1;
}
void increaseSize(SqList L){
SqList p;
p=L;
int len=p.listsize+1;
L.elem=(int*)malloc(sizeof(int)*len);
for(int i=0;i<L.length;i++){
L.elem[i]=p.elem[i];
}
L.listsize++;
}
void Listinput(SqList &L){
int t;
while(true){
if(L.length==L.listsize)increaseSize(L);
scanf("%d",&t);
if(t==0)break;
L.elem[L.length++]=t;
}
}
void steMUl(SqList &Lc,SqList &La,SqList &Lb){
for(int i=0;i<La.length;i++){
for(int j=0;j<Lb.length;j++){
if(La.elem[i]==Lb.elem[j]){
if(Lc.length==Lc.listsize)increaseSize(Lc);
Lc.elem[Lc.length++]=Lb.elem[j];
}
}
}
}
void print_List(SqList &L){
if(L.length==0)printf("empty class");
else{
for(int i=0;i<L.length;i++)printf("%d ",L.elem[i]);
}
}
int main(){
SqList La,Lb,Lc;
InitList_Sq(La); //初始化3个线性表
InitList_Sq(Lb);
InitList_Sq(Lc);
Listinput(La); //输入La的值
Listinput(Lb);//输入Lb的值
steMUl(Lc,La,Lb);//求出La和Lb的交集,放在Lc中
print_List(Lc);//打印交集
return 0;
}