合并两个非递减有序线性表

合并两个非递减有序线性表

ID:16185280

大小:42.00 KB

页数:10页

时间:2018-08-08

合并两个非递减有序线性表_第1页
合并两个非递减有序线性表_第2页
合并两个非递减有序线性表_第3页
合并两个非递减有序线性表_第4页
合并两个非递减有序线性表_第5页
资源描述:

《合并两个非递减有序线性表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、/*实验一(顺序表):设有非递减有序线性表LA=(3,5,8,11)和LB=(2,6,8,9,11,15,20),若LA和LB分别表示两个集合A和B,求新集合A=AUB(‘并’操作,相同元素不保留);预测输出:LA=(3,5,8,11,2,6,9,15,20)*///以下是求集合A=AUB的算法/*statusmerge(sqlist&la,sqlistlb){//将lb中和la中元素不同的数据元素归并至la中len=la.length;//la中元素的个数q=la.elem+len;//q为插入位置pa=la.elem;pb

2、_last=lb.elem+lb.length-1;//lb中表尾元素的地址for(pb=lb.elem;pb<=pb_last;pb++){for(;pa<=la.elem+len-1&&*pa<*pb;pa++);//查找*pb在la中的插入位置if(pa>la.elem+len-1

3、

4、*pa>*pb)//若表中不存在和*pb相等的元素,则插入{if(la.length>=la.listsize)//若容量不够,增加分配{newbase=(int*)realloc(la.elem,(la.listsize+LISTINCR

5、EMENT)*sizeof(int));if(!newbase)exit(OVERFLOW);la.elem=newbase;la.listsize+=LISTINCREMENT;q=la.elem+la.length;//q为插入位置}//endif*q++=*pb;(la.length)++;}//endif}//endforreturnOK;}//merge*///以下是程序#include#include#include#defineLISTINCREMENT10

6、#defineOK1#defineERROR0#defineOVERFLOW-1/*类型定义*/typedefstruct{int*elem;intlength;intlistsize;}sqlist;typedefintstatus;/*操作*/statuscreat(sqlist&l){/*建立含有n个数据元素的顺序表*/inti,n;printf("请输入表中数据元素的个数:");scanf("%d",&n);while(n<=0){printf("数值太小,请重新输入!");scanf("%d",&n);}l.leng

7、th=n;//表长为元素个数l.elem=(int*)malloc(n*sizeof(int));if(!l.elem)exit(OVERFLOW);l.listsize=n;printf("请输入%d个元素:",n);for(i=0;i

8、,*pb,*newbase,*pb_last,len,*q;len=la.length;//la中元素的个数q=la.elem+len;pa=la.elem;pb_last=lb.elem+lb.length-1;//lb中表尾元素的地址for(pb=lb.elem;pb<=pb_last;pb++){for(;pa<=la.elem+len-1&&*pa<*pb;pa++);//查找*pb在la中的插入位置if(pa>la.elem+len-1

9、

10、*pa>*pb)//若表中不存在和*pb相等的元素,则插入{if(la.len

11、gth>=la.listsize)//若容量不够,增加分配{newbase=(int*)realloc(la.elem,(la.listsize+LISTINCREMENT)*sizeof(int));if(!newbase)exit(OVERFLOW);la.elem=newbase;la.listsize+=LISTINCREMENT;q=la.elem+la.length;//q为新的插入位置}//endif*q++=*pb;(la.length)++;}//endif}//endforreturnOK;}voidpri

12、nt(sqlistl){//输出顺序表l中的数据元素inti;for(i=0;i<=l.length-1;i++)printf("%5d",l.elem[i]);printf("");}voiddestroy(sqlist&l){free(l.elem);l.elem=N

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

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

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