顺序表集合操作

顺序表集合操作

ID:38221584

大小:69.50 KB

页数:6页

时间:2019-05-25

顺序表集合操作_第1页
顺序表集合操作_第2页
顺序表集合操作_第3页
顺序表集合操作_第4页
顺序表集合操作_第5页
资源描述:

《顺序表集合操作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、/*9、集合操作(分)基本功能要求:()从文件中读入集合数据建立单链表。()分别求出集合的交、并、差。*/#include#include#defineMaxSize33typedefintElemType;typedefstruct{ElemTypedata[MaxSize+1];intlength;}SqList;voidInitList(SqList*&L)//创建空的顺序表{L=(SqList*)malloc(sizeof(SqList));L->length=0;}voidCreateList(SqList*&L)//向数据表输入数据{i

2、nti=1,n;printf("Pleaseinputthedataandendupwith0:");scanf("%d",&n);L->length=0;while(n!=0&&L->length<=MaxSize){L->data[i]=n;i++;L->length++;scanf("%d",&n);}}intLengthList(SqList*&L)//顺序表长度{return(L->length);}intGetElem(SqList*L,inti,ElemType&e)//获取顺序表中的一个元素{e=L->data[i];if(i<1

3、

4、i>L->length)retu

5、rn0;elsereturn1;}intListInsert(SqList*&L,inti,ElemTypee)//在顺序表中i处插入指定元素e{intj;if(i<1

6、

7、i>L->length+1

8、

9、L->length==MaxSize)return0;for(j=L->length;j>=i;j--)L->data[j+1]=L->data[j];L->data[i]=e;L->length++;return1;}voidListDelete(SqList*&L,inti,ElemType&e)//删除相同元素{intj;if(i<1

10、

11、i>L->length)printf("ER

12、ROR!!");e=L->data[i];for(j=i+1;j<=L->length;j++)L->data[j-1]=L->data[j];L->length--;}voidClearList(SqList*&L)//清除顺序表中重复元素{inti,j,e;for(i=1;i<=L->length;i++){for(j=i+1;j<=L->length;j++){if(L->data[i]!=L->data[j])continue;elseif(L->data[i]==L->data[j]&&jlength){ListDelete(L,j,e);j--;}elseif(L-

13、>data[i]==L->data[j]&&j==L->length){ListDelete(L,j,e);}}}}voidMergeList(SqList*LA,SqList*LB,SqList*&LC)//求两个集合并集{inti=1,j=1,k=0;ElemTypeai,bj;intLA_len,LB_len;InitList(LC);LA_len=LengthList(LA);LB_len=LengthList(LB);/*while((i<=LA_len)&&(j<=LB_len))//该段备注加上则为按顺序排开的{GetElem(LA,i,ai);GetElem(LB,j,

14、bj);if(ai<=bj){ListInsert(LC,++k,ai);++i;}else{ListInsert(LC,++k,bj);++j;}}*/while(i<=LA_len)//向LC添加元素{GetElem(LA,i++,ai);ListInsert(LC,++k,ai);}while(j<=LB_len){GetElem(LB,j++,bj);ListInsert(LC,++k,bj);}ClearList(LC);//清除重复元素printf("Themergedlist(withoutorder)is:");//显示并集for(i=1;i<=LC->length;i

15、++){printf("%3d",LC->data[i]);}printf("");}voidCrossList(SqList*LA,SqList*LB,SqList*&LD)//求两个集合的交集{InitList(LD);inti,j,k=0;for(i=1;i<=LA->length;i++){for(j=1;j<=LB->length;j++){if(LA->data[i]==LB->data[j])ListInsert(LD,++k

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

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

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