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

上传人:新** 文档编号:548965858 上传时间:2024-02-12 格式:DOC 页数:4 大小:48.50KB
返回 下载 相关 举报
线性表的合并操作---链式存储.doc_第1页
第1页 / 共4页
线性表的合并操作---链式存储.doc_第2页
第2页 / 共4页
线性表的合并操作---链式存储.doc_第3页
第3页 / 共4页
线性表的合并操作---链式存储.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《线性表的合并操作---链式存储.doc》由会员分享,可在线阅读,更多相关《线性表的合并操作---链式存储.doc(4页珍藏版)》请在金锄头文库上搜索。

1、线性表的合并操作链式存储/* Note:Your choice is C IDE */#include stdio.h#include stdlib.h#define ERROR 0#define OK 1typedef int Status;typedef int ElemType;typedef struct LNodeElemType data;struct LNode *next;LNode,*LinkList;/初始化Status InitList_L(LinkList *L)*L=(LinkList)malloc(sizeof(LNode);if(!*L)exit(0);(*L)-

2、next=NULL;return OK; /测长度int ListLength_L(LinkList L)LinkList p;int j;p=L-next;j=0;while(p)p=p-next;j+;return j;/插入操作Status ListInsert_L(LinkList L,int i,ElemType e)LinkList p,s;int j;p=L;j=0;while(p&jnext;j+;if(!p|ji-1) return ERROR;s=(LinkList)malloc(sizeof(LNode);if(!s)exit(0);s-data=e;s-next=p-n

3、ext;p-next=s;return OK;/删除操作Status ListDelete_L(LinkList L,int i,ElemType *e)LinkList p,q;int j;p=L;j=0;while(!p&jnext;j+;if(!(p-next)|ji-1) return ERROR;q=p-next;*e=q-data;p-next=q-next;free(q);return OK;/合并操作void MergeList_L(LinkList La,LinkList Lb,LinkList *Lc)LinkList pa,pb,pc;pa=La-next;pb=Lb-n

4、ext;*Lc=pc=La;while(pa&pb)if(pa-datadata) pc-next=pa;pc=pa;pa=pa-next;else pc-next=pb;pc=pb;pb=pb-next;pc-next=pa?pa:pb;free(Lb);void main() LinkList La,Lb,Lc,q; ElemType e; int i,j,a,b; if(InitList_L(&La) printf(La:Initer is OK!n); else printf(error!n); /La的赋值 printf(please input La.length!n); scan

5、f(%d,&a); printf(Please input the Las values of sq:n); for(i=0;inext;j=i;j+) if(edata)break; else q=q-next; if(!ListInsert_L(La,j,e)printf(error!n); printf(La-); q=La-next; while(q) if(q-next)printf(%d-,q-data); else printf(%dn,q-data); q=q-next; printf(Las length: %dnn,ListLength_L(La); /Lb的赋值 if(I

6、nitList_L(&Lb) printf(Lb:Initer is OK!n); printf(please input Lb.length!n);scanf(%d,&b);printf(Please input the Lbs values of sq:n); for(i=0;inext;j=i;j+) if(edata)break; else q=q-next; if(!ListInsert_L(Lb,j,e)printf(error!n); printf(Lb-); q=Lb-next; while(q) if(q-next)printf(%d-,q-data); else printf(%dn,q-data); q=q-next; printf(Lbs length: %dnn,ListLength_L(Lb); /Lc=La+Lb的运算 MergeList_L(La,Lb,&Lc); printf(Lc-); q=Lc-next; while(q) if(q-next)printf(%d-,q-data); else printf(%dn,q-data); q=q-next; printf(Lcs length: %dnn,ListLength_L(Lc);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号