欢迎来到天天文库
浏览记录
ID:56709012
大小:16.50 KB
页数:6页
时间:2020-07-05
《有两张单调递增有序的线性表A和B,采用顺序存储结构,将这两张表合并成C表,要求C表单调递减有序。.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/*Note:YourchoiceisCIDE*/#include"stdio.h"#include"stdlib.h"#defineOK1#defineERROR0#defineTRUE1#defineOVERFLOW-2typedefintstatus;typedefintelemtype;#defineLIST_INIT_SIZE100#defineLISTINCREMENT10typedefstruct{elemtype*elem;intlength;intlistsize;}SqList;statusInitList_Sq(SqLis
2、t*L)/*构造一个空的顺序表*/{L->elem=(elemtype*)malloc(LIST_INIT_SIZE*sizeof(elemtype));if(!L->elem)exit(OVERFLOW);L->length=0;L->listsize=LIST_INIT_SIZE;returnOK;}voidshengcheng_Sq(SqList*L)/*建立一个顺序表,含有n个数据元素。*/{intm,n;printf("pleaseentersomedata:");scanf("%d",&n);/*printf("请输入%d个元素:"
3、,n);*/for(m=0;melem[m]);L->length++;}}voidshuchu_Sq(SqListL)/*输出顺序表及顺序表的长度*/{inti;/*printf("顺序表中的元素是:");*/for(i=0;i4、pa,*pb,*pc,*pa_last,*pb_last;pa=La->elem;pb=Lb->elem;Lc->listsize=Lc->length=La->length+Lb->length;pc=Lc->elem=(elemtype*)malloc(Lc->listsize*sizeof(elemtype));if(!Lc->elem)exit(OVERFLOW);pa_last=La->elem+La->length-1;pb_last=Lb->elem+Lb->length-1;while(pa<=pa_last&&pb<=pb_l5、ast){if(*pa<=*pb)*pc++=*pa++;else*pc++=*pb++;}while(pa<=pa_last)*pc++=*pa++;while(pb<=pa_last)*pc++=*pb++;}voidnizhi_Sq(SqList*La,SqList*Lb)/*将顺序表逆置,将结果保存到另外的顺序表中。*/{intm,p;InitList_Sq(Lb);p=La->length-1;for(m=0;m<=p;m++){Lb->elem[m]=La->elem[p-m];Lb->length++;}}voidmain(){S6、qListLa,Lb,Lc,Ld;InitList_Sq(&La);InitList_Sq(&Lb);InitList_Sq(&Lc);InitList_Sq(&Ld);shengcheng_Sq(&La);shuchu_Sq(La);shengcheng_Sq(&Lb);shuchu_Sq(Lb);MergeList_Sq(&La,&Lb,&Lc);shuchu_Sq(Lc);nizhi_Sq(&Lc,&Ld);shuchu_Sq(Ld);}
4、pa,*pb,*pc,*pa_last,*pb_last;pa=La->elem;pb=Lb->elem;Lc->listsize=Lc->length=La->length+Lb->length;pc=Lc->elem=(elemtype*)malloc(Lc->listsize*sizeof(elemtype));if(!Lc->elem)exit(OVERFLOW);pa_last=La->elem+La->length-1;pb_last=Lb->elem+Lb->length-1;while(pa<=pa_last&&pb<=pb_l
5、ast){if(*pa<=*pb)*pc++=*pa++;else*pc++=*pb++;}while(pa<=pa_last)*pc++=*pa++;while(pb<=pa_last)*pc++=*pb++;}voidnizhi_Sq(SqList*La,SqList*Lb)/*将顺序表逆置,将结果保存到另外的顺序表中。*/{intm,p;InitList_Sq(Lb);p=La->length-1;for(m=0;m<=p;m++){Lb->elem[m]=La->elem[p-m];Lb->length++;}}voidmain(){S
6、qListLa,Lb,Lc,Ld;InitList_Sq(&La);InitList_Sq(&Lb);InitList_Sq(&Lc);InitList_Sq(&Ld);shengcheng_Sq(&La);shuchu_Sq(La);shengcheng_Sq(&Lb);shuchu_Sq(Lb);MergeList_Sq(&La,&Lb,&Lc);shuchu_Sq(Lc);nizhi_Sq(&Lc,&Ld);shuchu_Sq(Ld);}
此文档下载收益归作者所有