线性表链式存储结构上得基本操作.doc

上传人:新** 文档编号:559036147 上传时间:2022-08-30 格式:DOC 页数:4 大小:34.51KB
返回 下载 相关 举报
线性表链式存储结构上得基本操作.doc_第1页
第1页 / 共4页
线性表链式存储结构上得基本操作.doc_第2页
第2页 / 共4页
线性表链式存储结构上得基本操作.doc_第3页
第3页 / 共4页
线性表链式存储结构上得基本操作.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

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

1、一、 单链表的存储结构typedef struct node Elemtype data; struct node *next; lnode, *linklist;结点类型 指针类型二、 基本操作的算法实现:1. 单链表的建立:(1) 带头结点的尾插法: void creatlistr( linklist *l) l=(lnode *)malloc(sizeof(lnode); r=l; cycle=1; while(cycle) scanf(&x); if(x!=0) s=(lnode *)malloc(sizeof(lnode); s-data=x; r-next=s; r=s; else

2、 cycle=0; r-next=Null;(2) 带头结点的头插法:void creatlistl( linklist *l,int n) l=(lnode *)malloc(sizeof(lnode); l-next=Null; for(i=n;i0;-i) p=(lnode *)malloc(sizeof(lnode); scanf(&p-data); p-next=l-next; l-next=p; 2. 取元素Status getelem( linklist *l, int i, Elemtype *e) p=l-next; j=1; while(p&jnext; +j; if(!p

3、|ji) return 0; e=p-data; return e;3. 插入操作Status insert( linklist *l, int i, Elemtype e) p=l; j=0;while(p&jnext; +j;if(!p|ji-1) return 0; s=(lnode *)malloc(sizeof(lnode); s-data=e; s-next=p-next; p-next=s;4. 删除操作Status delete(linklist *l, int i, Elemtype *e) p=l; j=0;while(p-next&jnext; +j;if(!(p-nex

4、t)|ji-1) return 0; q=p-next; p-next=q-next; e=q-data; delete q; return e; 实例:如何将两个有序链表合并为一个有序链表 算法: void mergelist( linklist *la, linklist *lb, linklist *lc) pa=la-next; pb=lb-next; pc=lc=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; delete lb;

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

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

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