- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
芳膨买岿听胚玉祝豆挟耗碘翼移沼挑担诽休兼蔓遣玖鲸涧孜殴晤叼宗坐装JAVA数据结构第二章 线性表BJAVA数据结构第二章 线性表B
上堂课要点回顾
线性结构(包括表、栈、队、数组)的定义和特点:
仅一个首、尾结点,其余元素仅一个直接前驱和一个直接后继。
2. 线性表
逻辑结构:“一对一” 或 1:1
存储结构:顺序、链式
运 算 :修改、插入、删除、查找
3.顺序存储
特征:逻辑上相邻,物理上也相邻;
优点:随机查找快 O(1)
缺点:插入、删除慢 O(n)
晦鸟艘敢乍嘶消揭码斌瞥襟郝见赊屯秩糟邢李烟莆峭辈耐反宅嫂驾强负踊JAVA数据结构第二章 线性表BJAVA数据结构第二章 线性表B
线性表的逻辑结构
线性表的顺序存储及实现
线性表的链接存储及实现
顺序表和单链表的比较
线性表的其他存储及实现
本章的基本内容是:
即悸槽帖慷暴神缄籍帘掠硼享勘莹茸腔睹夺吊味秀秤滤巾哀砚嘘颂品挂簿JAVA数据结构第二章 线性表BJAVA数据结构第二章 线性表B
2.3 线性表的链式存储和实现
2.3.1 链表的存储表示
2.3.2 链表的操作实现
2.3.3 链表的算法效率分析
本节小结
忍牧跳熔坝婪填喂绝雪苍腕履蒜掉识缎篡艾纹放布蛔柴探咏它功梯涌棍矛JAVA数据结构第二章 线性表BJAVA数据结构第二章 线性表B
链表:线性表的链接存储结构。
存储思想:用一组任意的存储单元存放线性表的元素。
2.3.1 链表的存储表示
硬车坍狗妒脏乃求硷钻奥挪氦阅股豆喻廓酿嫡厕蹈仓乒薄捌锗囱婶粥跪版JAVA数据结构第二章 线性表BJAVA数据结构第二章 线性表B
存储特点:
逻辑次序和物理次序
不一定相同。
2.元素之间的逻辑关系
用地址表示。
例:(a1, a2 ,a3, a4)的存储示意图
1、链表的存储特点
a1
0200
a2
0325
a3
0300
a4
∧
惠献毕刻淌温菇粹棉蕉犁酱恤纶铀讲膳稚锡冈仍讼蚤涣虾纷砰揭甲席遍歉JAVA数据结构第二章 线性表BJAVA数据结构第二章 线性表B
链表是由若干结点构成的;每个结点结构有两个部分组成:
数据域
地址域
data:存储数据元素
next:存储指向后继结点的地址
醋甜结孕陵闰拆迹全掩虹鼠彩床抚酿炙靠菜蔼解电端绿绘砒整桌灶硝奇幻JAVA数据结构第二章 线性表BJAVA数据结构第二章 线性表B
2、 有关的术语
1)结点:数据元素的存储映像。由数据域和地址域两部分组成;
2)链表: n 个结点由地址链组成一个链表。它是线性表的链式存储映像,称为线性表的链式存储结构。
3)单链表、双链表、多链表、循环链表:
结点只有一个地址域的链表,称为单链表或线性链表;
有两个地址域的链表,称为双链表;
有多个地址域的链表,称为多链表;
首尾相接的链表称为循环链表。
鸿在慢织村褐弱腾洲蕴淖轧陇婪诗炮筷闷膨凹吓汛巳廷幢挣酗砚姻等清谬JAVA数据结构第二章 线性表BJAVA数据结构第二章 线性表B
头指针是指向链表中第一个结点(或为头结点或为首元结点)的地址。
头结点是在链表的首元结点之前附设的一个结点;数据域内只放空表标志或表长等信息;
首元结点是指链表中存储线性表第一个数据元素a1。
4)头指针、头结点和首结点
忿讹揽勃授谁外护寂迪奋现贞跑特胎羽挨忽请搭捍典织全闯叁姓屹暂仙咖JAVA数据结构第二章 线性表BJAVA数据结构第二章 线性表B
上例链表的逻辑结构示意图有以下两种形式:
①
a1
a2
/\
a4
a3
H
②
a1
a2
/\
a4
a3
H
区别:① 无头结点(链式队列、链栈常用)
② 有头结点(链表常用)
虞辊斯掀侠柯孔赖雅百乱刘彼掇胞班敛夹忙侣藉篮仁芳丰信离悄防曳超款JAVA数据结构第二章 线性表BJAVA数据结构第二章 线性表B
答:
讨论1. 在链表中设置头结点有什么好处?
讨论2. 如何表示空表?
头结点即在链表的首元结点之前附设的一个结点,该结点的数据域中不存储线性表的数据元素,其作用是为了对链表进行操作时,可以对空表、非空表的情况以及对首元结点进行统一处理,编程更方便,常用头结点。
答:
无头结点时,当头指针的值为空时表示空表;
有头结点时,当头结点的地址域为空时表示空表。
h==NULL
H.next==NULL
笺粘忽烷赞烘幢毁后每弟狠区籍付旱阶睁凝昂栅妈硼海哺执骚蒜良壤蓉柒JAVA数据结构第二章 线性表BJAVA数据结构第二章 线性表B
public class NodeE { //单链表结点类
public E data; //数据域,保存数据元素
public NodeE next; //地址域,引用后继结点
3、单
文档评论(0)