线性表 定义顺序存储结构基本操作两种特殊的线性表栈队列.ppt
《线性表 定义顺序存储结构基本操作两种特殊的线性表栈队列.ppt》由会员分享,可在线阅读,更多相关《线性表 定义顺序存储结构基本操作两种特殊的线性表栈队列.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、线性表 定义顺序存储结构基本操作两种特殊的线性表栈队列 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望数据结构与算法设计数据结构与算法设计第5次2012.5顺序存储结构的优缺点顺序存储结构的优缺点l优点l逻辑相邻,物理相邻l可随机存取任一元素l存储空间使用紧凑l缺点l插入、删除操作需要移动大量的元素,平均移动n/2l预先分配空间需按最大空间分配,利用不充分l表容量难以扩充第三章链表第三章链表1:单向链表链表链表 内容提要内容提要l单向链表l循环链表l双向链表l稀疏
2、矩阵的表示单向链表单向链表l每个元素(表项)由结点(Node)构成typedef struct LNodeDatatype data;struct LNode*next;l线性结构结点可以不连续存储,表可扩充单向链表的存贮映像单向链表的存贮映像指针操作指针操作lLNode*p,*q;lp-data;p-next;lq=new LNode;lq=p;lq=p-next;(q指向后继)lp=p-next;(指针移动)lp-next=q;(链指针改接)lp-next=q-next;(?)链表结点的基本运算链表结点的基本运算lVoid SetNode(LNode*front);/构造函数,结点的nex
3、t置NULLlNode*NextNode(LNode*ptr);/返回后继指针lVoid InsertAfter(LNode*ptr,Datatype item);/在结点*ptr插入lVoid DeleteAfter(LNode*ptr);/删除结点后的一个结点.在结点后插入数据指针的变化在结点后插入数据指针的变化newnode-next=current-next;current-next=newnode;lVoid InsertAfter(LNode*ptr,Datatype item)LNode *q;q=new LNode;If(q=NULL)错误信息 printf()q-next=p
4、tr-next;q-data=item;ptr-next=q;在结点后删除数据指针的变化在结点后删除数据指针的变化q=p-next;If(q!=NULL)p.next=q.next;Delete q;单链表的定义单链表的定义l多个类表达一个概念(单链表)链表结点(ListNode)链表(List)Typedef structLNode *front;int Size;/并非必要的成员 LList;lVoid SetLList(LList*L);lVoid FreeList(LList*L);lInt LListSize(LList*L);lInt LListEmpty(LList*L);lIn
5、t LListLocate(LList*L,DataType item);l。求线性表的长度求线性表的长度lint LListSize(LList*L)Lnode*p=L;int k=0;while(p)k+,p=p-next;return k;/时间复杂度O(n)关于插入的讨论关于插入的讨论l已知结点之后插入,时间复杂度O(1)l已知结点之前插入?需要查找前驱,时间复杂度为O(n),如果指向第一个结点,要修改头指针Void LListInsertB(LList*L,LNode*p,LNode*s)LNode*q;if(p=L)s-next=L;L=s;else q=L;while(q-nex
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性表 定义顺序存储结构基本操作两种特殊的线性表栈队列 线性 定义 顺序 存储 结构 基本 操作 特殊 队列
限制150内