早教吧作业答案频道 -->其他-->
已知两个顺序表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、B两种材料,A材料2000公斤,单价100元,买价200000元,增 2020-05-13 …
海关总署2008年2月15日公布,2008年1月份我国实现贸易顺差194.9亿美元,增长22.6% 2020-05-16 …
商品销售额实际增加400元,由于销售量增长使销售额增加420元,由于价格()。A.增长使销售额增加2 2020-06-07 …
一道数学题,AB两家公司招聘,A公司年薪10000元A公司年薪10000元,工龄工薪每年增加100 2020-06-08 …
2005年我国改革开放迈出重大步伐。进出口贸易总额达到1.42万亿美元,增长23.2%,进出口贸易 2020-06-11 …
1丶C公司是增值税一般纳税人,增值税税率17%,运费不考虑增值税。08年5月份发生下列经济业务:① 2020-06-19 …
从某煤矿购进煤炭200吨,每吨600元,增值税20400元,铁路运达费2万元,其中可抵扣的纯运费1 2020-07-01 …
会计基础练习题解答,谢谢~选择题:某企业2010年9月份资产增加200万元,负债减少100万元,其 2020-07-08 …
某增值税一般纳税企业采购A材料10000公斤,单价10元,增值税税率17%,途中合理损耗10公斤, 2020-07-16 …
从1999年到2013年,澳门本地生产总值由502.7亿澳门元增长至4134.7亿澳门元,年均增长1 2020-11-21 …