线性表的合并操作---链式存储

线性表的合并操作---链式存储

ID:12556174

大小:48.50 KB

页数:4页

时间:2018-07-17

线性表的合并操作---链式存储_第1页
线性表的合并操作---链式存储_第2页
线性表的合并操作---链式存储_第3页
线性表的合并操作---链式存储_第4页
资源描述:

《线性表的合并操作---链式存储》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、线性表的合并操作——链式存储/*Note:YourchoiceisCIDE*/#include"stdio.h"#include"stdlib.h"#defineERROR0#defineOK1typedefintStatus;typedefintElemType;typedefstructLNode{ElemTypedata;structLNode*next;}LNode,*LinkList;//初始化StatusInitList_L(LinkList*L){*L=(LinkList)malloc(sizeof

2、(LNode));if(!*L)exit(0);(*L)->next=NULL;returnOK;}//测长度intListLength_L(LinkListL){LinkListp;intj;p=L->next;j=0;while(p){p=p->next;j++;}returnj;}//插入操作StatusListInsert_L(LinkListL,inti,ElemTypee){LinkListp,s;intj;p=L;j=0;while(p&&jnext;j++;}if(!p

3、

4、j

5、>i-1)returnERROR;s=(LinkList)malloc(sizeof(LNode));if(!s)exit(0);s->data=e;s->next=p->next;p->next=s;returnOK;}//删除操作StatusListDelete_L(LinkListL,inti,ElemType*e){LinkListp,q;intj;p=L;j=0;while(!p&&jnext;j++;}if(!(p->next)

6、

7、j>i-1)returnERROR;q=p->n

8、ext;*e=q->data;p->next=q->next;free(q);returnOK;}//合并操作voidMergeList_L(LinkListLa,LinkListLb,LinkList*Lc){LinkListpa,pb,pc;pa=La->next;pb=Lb->next;*Lc=pc=La;while(pa&&pb){if(pa->data<=pb->data){pc->next=pa;pc=pa;pa=pa->next;}else{pc->next=pb;pc=pb;pb=pb->next

9、;}}pc->next=pa?pa:pb;free(Lb);}voidmain(){LinkListLa,Lb,Lc,q;ElemTypee;inti,j,a,b;if(InitList_L(&La))printf("La:IniterisOK!");elseprintf("error!");//La的赋值printf("pleaseinputLa.length!");scanf("%d",&a);printf("PleaseinputtheLa'svaluesofsq:");for(i=0;i<

10、a;i++){scanf("%d",&e);for(j=1,q=La->next;j<=i;j++){if(edata)break;elseq=q->next;}if(!ListInsert_L(La,j,e))printf("error!");}printf("La->");q=La->next;while(q){if(q->next)printf("%d->",q->data);elseprintf("%d",q->data);q=q->next;}printf("La'slength:%d

11、n",ListLength_L(La));//Lb的赋值if(InitList_L(&Lb))printf("Lb:IniterisOK!");printf("pleaseinputLb.length!");scanf("%d",&b);printf("PleaseinputtheLb'svaluesofsq:");for(i=0;inext;j<=i;j++){if(edata)break;elseq=q->nex

12、t;}if(!ListInsert_L(Lb,j,e))printf("error!");}printf("Lb->");q=Lb->next;while(q){if(q->next)printf("%d->",q->data);elseprintf("%d",q->data);q=q->next;}printf("Lb'slength:%d",ListL

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

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

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