链式线性表程序.doc

上传人:博****1 文档编号:559804231 上传时间:2023-06-16 格式:DOC 页数:6 大小:35.01KB
返回 下载 相关 举报
链式线性表程序.doc_第1页
第1页 / 共6页
链式线性表程序.doc_第2页
第2页 / 共6页
链式线性表程序.doc_第3页
第3页 / 共6页
链式线性表程序.doc_第4页
第4页 / 共6页
链式线性表程序.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《链式线性表程序.doc》由会员分享,可在线阅读,更多相关《链式线性表程序.doc(6页珍藏版)》请在金锄头文库上搜索。

1、#includestdio.h#includestdlib.h#define OK 1#define ERROR 0#define OVERFLOW -2typedef int ElemType;typedef int Status;typedef struct LnodeElemType data;struct Lnode *next;Lnode, *Linklist;void Creatlist(Linklist &L,int n)Lnode *p;int i;L=(Linklist)malloc(sizeof(Lnode);L-next=NULL;for(i=n;i0;i-)p=(Lin

2、klist)malloc(sizeof(Lnode);scanf(%d,&p-data);p-next=L-next;L-next=p;void CCreatlist(Linklist &L,int n)Linklist q,r;int i;L=(Linklist)malloc(sizeof(Lnode);L-next=NULL;q=L;for(i=n;i0;i-)r=(Linklist)malloc(sizeof(Lnode);scanf(%d,&r-data);r-next=q-next;q-next=r;q=r;void Displist(Linklist &L)Linklist p;i

3、nt l=0;p=L-next;while(p)printf(%5d,p-data);p=p-next;l+;printf(nn);printf(请输出链式线性表L的长度:);printf(%d,l);Status Getlist(Linklist L,int i)Linklist q;int j=1,e;q=L-next;while(q&jnext;j+;if(!q|ji) return ERROR;e=q-data;printf(%d,e);return OK;Status ListInsert(Linklist &L,int i,int m)Linklist r,s; int j=0;

4、r=L; while(r&jnext; j+; if(!r|ji-1) return ERROR; s=(Linklist)malloc(sizeof(Lnode); s-data=m; s-next=r-next; r-next=s; return OK;Status ListDelete(Linklist &L,int i)Linklist q,r;int j=0,m;q=L;while(q&jnext; j+; if(!(q-next)|ji-1) return ERROR; r=q-next; q-next=r-next; m=r-data; printf(n); printf(输出被

5、删除的元素m:); printf(%d,m); free(r); return OK;void Mergelist(Linklist &L,Linklist &La)Linklist pa,pc,Lc;Lnode *q;q=L-next;pa=La-next;pc=Lc=L;while(q&pa)if(q-datadata)pc-next=q;pc=q;q=q-next;elsepc-next=pa;pc=pa;pa=pa-next;pc-next=q?q:pa;free(La);void main()Linklist L,La;int i,j,k,e;/printf(利用尾插法建立链表L:)

6、;/CCreatlist(L,5);/printf(n);printf(利用头插法建立链表L:); Creatlist (L,5);printf(n);printf(输出线性链表L:); Displist(L);printf(nn); printf(输出线性表L中的第三个元素:);Getlist(L,3);printf(nn);printf(在带头结点的单链线性表L中的第i个位置之前插入元素e:nn);printf(请输入元素i的数值:);scanf(%d,&i);printf(n); printf(请输入元素e的数值:); scanf(%d,&e);printf(n);ListInsert(

7、L,i,e);printf(输出插入元素以后的链式线性表L:);Displist(L);printf(nn); printf(删除在带头结点的单链线性表L中的第i个位置上的元素e:nn);printf(请输入元素i的数值:);scanf(%d,&i);/printf(n); ListDelete(L,i);printf(nn);printf(输出删除元素以后的链式线性表L:);Displist(L);printf(nn);printf(利用尾插法建立链式线性表La:);CCreatlist(La,5);printf(n);printf(输出线性链表La:);Displist(La);printf(nn);printf(合并链式线性表L和La:);Mergelist(L,La);Displist(L); printf(nn);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

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