- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
济南大学数据结构课件 第二章.ppt
2.3.1 线性链表 线性表的链式表示------是可以用一组任意的存储单元存储线性表的数据元素。 以链式结构存储的线性表称之为线性链表。 特点是该线性表中的数据元素可以用任意的存储单元来存储。线性表中逻辑相邻的两元素的存储空间可以是不连续的。为表示逻辑上的顺序关系,对表的每个数据元素除存储本身的信息之外,还需存储一个指示其直接后继的信息。这两部分信息组成数据元素的存储映象,称为结点。 例: 线性表 (赵,钱,孙,李,周,伍,张,王)的链式表示 (赵,钱,孙,李,周,吴,郑,王)的链式表示 链表相关的名称 结点: 两部分信息组成,存储数据元素信息的数据域,存储直接后继存储位置信息的指针域。 作业: 1、p17 2.14 ; 2、引入头结点的原因? 3、如何逆置一个单链表为一个新表? 2:链表的逆置问题。 3:链表的合并问题(注意空间和时间的要求) 4:结构的选择问题。 5:链表的起始条件,判断条件,特点等 类型表示: #define MAXSIZE 1000 typedef struct { ElemType data ; int cur ; } component ,SLinkList[MAXSIZE] ; data表示数据元素信息; cur代替指针指示结点在数组中的相对位置。 zhao qian sun li zhou 0 1 2 3 4 5 6 1 4 3 5 2 0 插入和删除操作 1) 在第i=4个结点前插入新元素 jin 添加新元素jin,并指向原第i=4个结点 jin 3 修改第3个结点的指向 找到第i-1=3个结点,记住第i=4个结点的位置3 3 6 2) 删除第2个结点 zhao qian sun li zhou 0 1 2 3 4 5 6 1 2 3 4 5 0 jin 4 6 找到第2个结点,记住下一个结点的位置 找到第1个结点 3 3 修改指向 2. 循环链表 表中最后一个节点的指针域指向头结点,形成一个环。 a1 … an Head 0 空表: Head 从表的任意结点出发均可以找到表中的其他结点。 优点: Head-next=head 例,取循环链表第 i 个元素。 p = L-next ;j = 1 ; while ( p L j i ) { p = p-next ;++j ; } if ( p = L || j i ) return ERROR ; e = p-data ; return OK ; Status GetElem_L ( LinkList L,int i,ElemType e ) { } 操作与线性单链表基本一致,差别只是在于算法中的循环结束条件不是p是否为空,而是p是否等于头指针。 有时为了方便某些操作,通常在循环链表中设立尾指针。 … Tail1 … Tail2 Tail1-next = p Tail2-next = Tail1-next p = Tail2-next p 例如顺次合并两个线性表。 3. 双向链表 在循环链表中寻找结点的直接后继很简单,只需要O(1);但要寻找结点的直接前趋就要从表头指针找起,需要O(n)。 双向链表的结点有两个指针域: 一个指向直接后继,一个指向直接前趋。 prior data next 类型表示: typedef struct DuLNode{ ElemType data ; struct DuLNode * prior ; struct DuLNode * next ; } DuLNode ,* DuLinkList ; prior data next A C Head B 性质: 设d 是指向某个结点的指针,则有 d d-next-prior = d-prior-next = d 操作: 只涉及单向的操作与单链基本相同,但插入、删除操作变化很大。 空表: Head 指令 1) 插入 X s 第一步: 找到要在之前插入的结点,p记录。 第一步: 1. s-prior = p-prior ; 2. p-prior-next = s ; 3. s-next = p ; 4. p-prior = s ; A B p 一定注意指令的顺序! 2 1 3 4 2) 删除 A C B 1. 找到要删除的结点,p记录。 p 2. p-prior-next = p-next ; 3. p-next
您可能关注的文档
最近下载
- XX国际建设项目竣工环境保护验收监测报告PPT汇报课件.pptx
- 40w机械白金机电3米并非子虚乌有.pdf VIP
- 四川乐山市市中区区属国有企业招聘笔试题库2023.pdf VIP
- 2025四川乐山市市中区国有企业选聘领导人员4人笔试参考题库附答案解析.docx VIP
- eVTOL飞行系统容错控制策略的技术现状与发展方向.docx VIP
- 小猪佩奇第一季台词本(11-20集).doc VIP
- 公司内部研发项目立项申请表.doc VIP
- 山东省职业指导师职业技能竞赛决赛考试题库(含答案).docx VIP
- 小猪佩奇第一季(1-10)集中英互译台词.pdf VIP
- 文艺演出服务项目组织机构及人员配备.doc VIP
文档评论(0)