双向链表实现集合的并交差

双向链表实现集合的并交差

ID:1769917

大小:161.00 KB

页数:7页

时间:2017-11-13

双向链表实现集合的并交差_第1页
双向链表实现集合的并交差_第2页
双向链表实现集合的并交差_第3页
双向链表实现集合的并交差_第4页
双向链表实现集合的并交差_第5页
资源描述:

《双向链表实现集合的并交差》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验二:双向链表的创建,以及用双向链表实现集合见得并交和差#include#includetypedefstructDuLNode{intdata;structDuLNode*prior;structDuLNode*next;}DuLNode,*DuLinkList;//建立空链表,链表头指针的data中存放了链表元素的个数。voidInitList(DuLNode**p){*p=(DuLNode*)malloc(sizeof(DuLNode));(*p)->next=(*p)->prio

2、r=*p;(*p)->data=0;}//在空表的基础上,创建有多个元素的链表。voidcreate_list(DuLNode**p){inti,n,m;DuLinkLista,b;a=*p;printf("输入需要输入的元素的个数:");scanf("%d",&n);printf("输入需要输入的元素:");for(i=0;idata=m;a->next=b;b->next=*p;b->prior=

3、a;(*p)->prior=b;a=b;(*p)->data++;}}DuLinkListGetElemP(DuLinkListh,inti){intj;DuLinkListp=h;for(j=1;j<=i;j++)p=p->next;returnp;}voidListinsert(DuLNode*m,inti,inte){DuLinkListp,q;printf("在第%d个元素前插入元素%d",i,e);if(m->data==0){p=(DuLinkList)malloc(sizeof(DuLNode));p->da

4、ta=e;m->next=p;p->prior=m;m->prior=p;p->next=m;m->data++;}else{q=(DuLinkList)malloc(sizeof(DuLNode));p=(DuLinkList)malloc(sizeof(DuLNode));q=GetElemP(m,i);p->data=e;p->prior=q->prior;q->prior->next=p;p->next=q;q->prior=p;m->data++;}}voidListDelete(DuLinkListL,inti){

5、printf("删除第%d个元素",i);DuLinkListp;p=GetElemP(L,i);p->prior->next=p->next;p->next->prior=p->prior;L->data--;free(p);}voidDisplay(DuLinkListL){DuLinkListp;if(L->data==0)printf("该集合为空");else{printf("输出该集合的元素");for(p=L->next;p!=L;){printf("%dt",p->data);p=p->next;}}

6、printf("该集合的元素个数:%d",L->data);}voidUnion(DuLinkList&la,DuLinkListlb)//求两个集合la,lb的并将结果保存在la中。{inta,b,i,j,m;DuLinkListp,q;a=la->data;b=lb->data;p=lb->next;printf("对两个集合并操作:");for(i=1;i<=b;i++){q=la->next;for(j=1;j<=a;j++){if(p->data!=q->data){q=q->next;m=0;}else

7、{m=1;break;}}if(m==0){Listinsert(la,la->data+1,p->data);}p=p->next;}}voidintersect(DuLinkList&lc,DuLinkListla,DuLinkListlb)//求两个集合la和lb的交集将结果保存在lc中。{inta,b,i,j;DuLinkListp,q;a=la->data;b=lb->data;p=lb->next;for(i=1;i<=b;i++){q=la->next;for(j=1;j<=a;j++){if(p->data==

8、q->data){Listinsert(lc,1,p->data);break;}else{q=q->next;}}p=p->next;}}voiddecrease(DuLinkList&ld,DuLinkListla,DuLinkListlb)//求集合la-lb的差并将结

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

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

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