早教吧作业答案频道 -->其他-->
已知两个顺序表A和B分别表示两个集合,其元素递增排列,编写一个函数求出A和B的交集C,要求C同样以元素递增的顺序表形式存储
题目详情
已知两个顺序表A和B分别表示两个集合,其元素递增排列,编写一个函数求出A和B的交集C,要求C同样以元素递增的顺序表形式存储
▼优质解答
答案和解析
typedef struct link {
int data;
struct link *next ;
} LINK ;
LINK * your_func( LINK *A , LINK *B ) //设A、B是带头结点的顺序表
{
LINK *pa=A->next , *pb=B->next ,*pc=NULL , *pcH,*p;
//先创建表头
pcH=pc=new LINK ;
pc->next=NULL ;
while ( pa && pb ) //有一个结束,循环就结束
{
while( pa->data < pb->data )
{
pa=pa->next ; //pa 向 pb 靠拢
if ( !pa )
return pcH; //到pa的尾,结束
} //此时,pa的数据>=pb
while( pb->data < pa->data )
{
pb=pb->next ; //pb 向 pa 靠拢
if ( !pb )
return pcH; //到pa的尾,结束
}//此时,pb的数据>=pa
if ( pb->data == pa->data )
{
p = new LINK ;
p->data=pa->data;
p->next=NULL;
pc->next=p;
pc = p;
pa=pa->next;
pb=pb->next;
}
}
return pcH ;
}
int data;
struct link *next ;
} LINK ;
LINK * your_func( LINK *A , LINK *B ) //设A、B是带头结点的顺序表
{
LINK *pa=A->next , *pb=B->next ,*pc=NULL , *pcH,*p;
//先创建表头
pcH=pc=new LINK ;
pc->next=NULL ;
while ( pa && pb ) //有一个结束,循环就结束
{
while( pa->data < pb->data )
{
pa=pa->next ; //pa 向 pb 靠拢
if ( !pa )
return pcH; //到pa的尾,结束
} //此时,pa的数据>=pb
while( pb->data < pa->data )
{
pb=pb->next ; //pb 向 pa 靠拢
if ( !pb )
return pcH; //到pa的尾,结束
}//此时,pb的数据>=pa
if ( pb->data == pa->data )
{
p = new LINK ;
p->data=pa->data;
p->next=NULL;
pc->next=p;
pc = p;
pa=pa->next;
pb=pb->next;
}
}
return pcH ;
}
看了 已知两个顺序表A和B分别表示...的网友还看了以下:
有关集合的问题,已知集合A={X|3≤X<7},集合B={X|2<X<10},求{A与B并集}相对 2020-04-26 …
二次函数与一元二次方程.1、抛物线y=x^+3x+2交X轴于A、B交y轴于C,顶点是P,求S三角形 2020-05-16 …
设集合A、B、C.我们知道集合满足分配律:(A交B)并C=(A并C)交(B并C)(A并B)交C=( 2020-06-23 …
设A与B的交集为空集,M={X|X属于A},N={Y|Y属于B},则A.M与N的交集为空集B.M与 2020-07-30 …
两个同心圆,做一直线交大圆于点A、B,交小圆于C、D,AC与BD的大小有何关系,请说明理由两个圆同 2020-08-01 …
已知集合U={x|x=1/n,n属于非零自然数,n≤9}的子集A,B满足CuA交CuB={1,1/ 2020-08-02 …
2014年2月11日,备受瞩目的国台办主任张志军与台湾方面大陆委员会负责人王郁琦正式会面,开启了两岸 2020-11-22 …
一个空集是两集合交集的真子集,能说明什么?空集是A和B交集的真子集,A交C等于空集,B={2、3}C 2020-12-05 …
设双曲线x2a2-y2b2=1(a>0,b>0)的左、右焦点分别为F1、F2,过点F2作直线A,B交 2020-12-31 …
如图1,直线Y=2X-4分别交X轴、Y轴于B、A两点.交双曲线Y=K/X(x>0)于点C,三角形AO 2021-01-10 …