早教吧作业答案频道 -->其他-->
已知两个顺序表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分别表示...的网友还看了以下:
谢谢老师1、已知某厂商长期生产函数为Q=1.2A0.5•B0.5,Q为每期产量,AB为每期投入的要 2020-05-17 …
分解素数JAVA要求用函数每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素 2020-06-10 …
已知函数f(x)=acosx+xsinx,x∈[-π2,π2].(Ⅰ)判断函数f(x)的奇偶性,并 2020-06-12 …
整数集到{0,1}两个元素集合的函数族个数是可数的还是不可数的?{0,1}两个元素集合到整数集的函 2020-07-07 …
已知某厂商长期生产函数为Q=1.2A0.5B0.5,Q为每期产量,A、B为每期投入要素,要素价格P 2020-07-09 …
1、已知某厂商长期生产函数为Q=1.2A0.5•B0.5,Q为每期产量,AB为每期投入的要素,要素 2020-07-09 …
某厂商长期生产函数为Q=1.2A0.5B0.5,Q为每期产量,A、B为每期投入要素,要素价格PA= 2020-07-09 …
1,请按以下叙述编写一个函数1、请按以下叙述编写一个函数要求:已知一维数组a(100),a(1)= 2020-07-29 …
请按以下叙述编写一个函数要求:已知一维数组a(100),a(1)=1:a(2)=2(假设下标从1开 2020-07-29 …
集合A={1,2},B={1,2,3},f:A→B为集合A到集合B的一个函数,如果这个函数的值域有且 2021-01-13 …