已知两个单链表a、b分别表示两个集合,其元素非递增。请编写程序求集合a和b的交集c。

已知两个单链表a、b分别表示两个集合,其元素非递增。请编写程序求集合a和b的交集c。

ID:17827522

大小:62.21 KB

页数:5页

时间:2018-09-06

已知两个单链表a、b分别表示两个集合,其元素非递增。请编写程序求集合a和b的交集c。_第1页
已知两个单链表a、b分别表示两个集合,其元素非递增。请编写程序求集合a和b的交集c。_第2页
已知两个单链表a、b分别表示两个集合,其元素非递增。请编写程序求集合a和b的交集c。_第3页
已知两个单链表a、b分别表示两个集合,其元素非递增。请编写程序求集合a和b的交集c。_第4页
已知两个单链表a、b分别表示两个集合,其元素非递增。请编写程序求集合a和b的交集c。_第5页
资源描述:

《已知两个单链表a、b分别表示两个集合,其元素非递增。请编写程序求集合a和b的交集c。》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验报告一、题目:已知两个单链表A、B分别表示两个集合,其元素非递增。请编写程序求集合A和B的交集C。二、设计:(1)本体具体设计1>编写单链表2>在链表的公共成员中创建链表,在私有成员中创建求交集函数。3>在主函数调用insert和get-element等函数存储结构数组存储data结点类structnode{intdata;node*next;};单链表类list()list(){head=newnode;count=0;}intlength(){returncount;}boolempty(){if(count==0){returntrue;}el

2、se{returnfalse;}}boolinsert(intn,intx)if(n<1

3、

4、n>count+1){returnfalse;}else{node*u=head;for(inti=1;i<=n-1;i++){u=u->next;}node*s=newnode;s->data=x;s->next=u->next;u->next=s;count++;returntrue;}}boolget_element(intn,int&x)if(empty()){returnfalse;}if(n<1

5、

6、n>count){returnfalse;}else{

7、node*u=head;for(inti=1;i<=n;i++){u=u->next;}x=u->data;returntrue;}}boollocate(intn)if(empty()){returnfalse;}node*u=head;intn=0;for(inti=1;i<=count;i++){if(u->next->data==x){a[n]=u->next;}u=u->next;}if(n==0){returnfalse;}else{returntrue;}}node*locate()node*u=head;node*s;inti;for(i

8、=1;i<=n;i++){u=u->next;}s=u;returns;}booldelete_element(intx)if(empty()){returnfalse;}if(n<1

9、

10、n>count){returnfalse;}else{node*u=head;for(inti=1;i<=n-1;i++){u=u->next;}node*s=u->next;u->next=s->next;deletes;count--;returntrue;}}~list(){while(!empty()){delete_element(1);}deletehead

11、;}求交集函数voidjiaoji(list&a,list&b,list&c){inti,j;intn=1;for(i=1;i<=a.count;i++){for(j=1;j<=b.count;j++){intx_i;intx_j;a.get_element(i,x_i);b.get_element(j,x_j);if(x_i==x_j){c.insert(n,x_j);n++;}}}}一、运行结果1)输入A:2346108671211B:189564846370输出结果:2)输入:A:26894358694736B:484749565825361215

12、输出结果;交集:voidjiaoji(list&a,list&b,list&c){inti,j;intn=1;for(i=1;i<=a.count;i++){for(j=1;j<=b.count;j++){intx_i;intx_j;a.get_element(i,x_i);b.get_element(j,x_j);if(x_i==x_j){c.insert(n,x_j);n++;}}}}主函数:voidmain(){intx,i;cout<<"输入链表1的元素";lista;listb;listc;listd;lista_lin;listb_lin

13、;for(i=1;i<=10;i++){cin>>x;a.insert(i,x);}cout<<"输入链表2的元素";for(i=1;i<=10;i++){cin>>x;b.insert(i,x);}a_lin=a;b_lin=b;cout<<"交集为";jiaoji(a_lin,b_lin,d);for(i=1;i<=d.length();i++){d.get_element(i,x);cout<

14、输入B集合后自动关闭窗口情况。然后重新输入就好了。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。