早教吧作业答案频道 -->其他-->
已知两个顺序表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分别表示...的网友还看了以下:
闹钟一个?元,台灯一个45元,书包一个50元,帽子一个?元.(1)闹钟比书包便宜百分之60,一个闹 2020-04-13 …
某债券市发行三种债券:A种面值为100元,一年到期本息和为103元;B种面值为50元,半年到期本息 2020-05-13 …
matlab如何实现数组中任意个数元素的求和!有一个一维数组A,共28个元素,现要找出这些元素中求 2020-05-16 …
第二电子亲和能和元素周期表的三个问题(好的还有追加分20)1.想请问为什么第一电子亲和能是正的而第 2020-06-07 …
老师带着几个学生去吃冰淇淋,如果给每个学生买一个碎碎冰和一个2元钱的小甜筒,一共缺15元钱;如果只 2020-06-18 …
我向甲借50元,我向乙借50元.买了一个97元的东西,别人找我3元,我还甲乙个一元,还有一元自己留 2020-06-30 …
,买2个篮球和4个足球共330元买,买同样的篮球3个和同样的足球5个435元.每个篮球和足球各多少 2020-07-09 …
某文具店出售每个为125元和75元的两种纪念币.两种每个都有25%的利润,但每个125元的不易出售 2020-07-09 …
通信系统传输的是四进制码元,4s传输了8000个码元,求系统的码元速率是多少?信息速率是多少?若1 2020-07-17 …
怎样解由两个二元二次方程组成的二元二次方程组.要举例和具体解法...二元二次方程组分两种第①种是由 2020-07-25 …