- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三讲
单链表的插入与删除;
双链表的插入与删除;
循环链表和静态链表简介;
四、典型例题
在单链表中,取得第i个数据元素必须从头指针出发寻找,因此
单链表是非随机存取的存储结构
在单链表中如何实现插入和删除操作?
p
a也日→
;日
s一内
插入前
插入后
实现的主要操作如下:
S-next=p-next;
p-next=S,
删除b以前
删除b以后
刑除时的主要操作
p-next= p-next -next
注:在已知链表中元素插入或删除的确切位置的情
况下,在单链表中插入和删除一个结点时,仅需要
修改指针而不需要移动元素。
具体算法实现见课本P29
循环链
邳链喝是指链表中最后那个链结点
的指针域存放指向链表最前面那个结点的指针
整个链表形成一个环。
线性链表
循环链表
带有头结点的循环链表
[[[…
注:从表中任一个结点出发均可找到表中其他结点
1.对于以Head为头结点的单循环链表中,q指针指向链
尾的条件是(B)。
A gnext==null
B gnext==Head
C. q-next-next==Head
D. gdata=-1
2.对于头指针为Head带头结点的单链表,判断该表为空
的条件(C)。
A. Head==null
B. Head -next==Head
C. Head-next==null d. Head null
注:有的时候为了某个常操作的方便,在
循环链表中设立尾指针而不设头指针,如
下图,
…“x
例如:见课本P35,实现两个线性表的合并时
,仅需要将一个表的表尾和另一个表的表头
相接。
双向链表及其操作
主要内容
1.双向链表的构造
2双向链表的插入与删除
=.双回表的构近
所谓双向链表是指链表的每一个结点中除了数
据域以外设置两个指针域,其中之一指向结点的直
接前驱结点,另外一个指向结点的直接后继结点。
链结点的实际构造可以形象地描述如下
prior data next→
其中,data为数据域
prior,next分别为指向该结点的直接前驱结
点与直接后继结点的指针域
文档评论(0)