资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
#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=(Linklist)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;int 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; 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(输出被删除的元素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:);/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(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);
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号