线性表的合并操作---链式存储.doc_第1页
线性表的合并操作---链式存储.doc_第2页
线性表的合并操作---链式存储.doc_第3页
线性表的合并操作---链式存储.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

线性表的合并操作链式存储/* 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)-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-next;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-next;*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); scanf(%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(InitList_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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论