数据结构四次课-第2章线性表B.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构四次课-第2章线性表B

上堂课要点回顾 2.3 线性表的链式表示和实现 2.3.1 链表的表示 与链式存储有关的术语: 4、头指针、头结点和首元结点 示意图如下: 例: 讨论2. 头结点的数据域内装的是什么? 实现 用一组任意的存储单元存储线性表的数据元素 利用指针实现了用不相邻的存储单元存放逻辑上相邻的元素 每个数据元素ai,除存储本身信息外,还需存储其直接后继的地址 结点 数据域:元素本身信息 指针域:指示直接后继的存储位置 4. 单链表的基本运算 算法描述 循环链表是表中最后一个结点p的指针指向头结点,使链表构成环状 p.setNext(head); 特点:从表中任一结点出发均可找到表中其他结点,提高查找效率 操作与单链表基本一致,循环条件不同 单链表p=h.getNext( ); p!=NULL 循环链表p=h.getNext( ); p!=h 双向链表(double linked list) 单链表具有单向性的缺点 双向链表(double linked list) 单链表具有单向性的缺点 5. 链表的运算效率分析 1. 查找 因线性链表不能顺序存取,即在查找时要从头指针找起,查找的时间复杂度为 O(n)。 练: 线性表的实现与表示方法小结: 线性表逻辑结构特点是,只有一个首结点和尾结点;除首尾结点外其他结点只有一个直接前驱和一个直接后继。简言之,线性结构反映结点间的逻辑关系是一对一(1:1)的。 问2:顺序存储和链式存储各有哪些优缺点? 顺序存储的优点是存储密度大(=1),存储空间利用率高。缺点是插入或删除元素效率低。 链式存储的优点是插入或删除元素时效率高,使用灵活。缺点是存储密度小(1),存储空间利用率低。 本章小结 4. 单链表的基本运算 * 每课一贴: 有一位表演大师上场前,他的弟子告诉他鞋带松了。大师点头致谢,蹲下来仔细系好。等到弟子转身后,又蹲下来将鞋带解松。有个旁观者看到了这一切,不解地问:“大师,您为什么又要将鞋带解松呢?”大师回答道:“因为我饰演的是一位劳累的旅者,长景涉让他的鞋事松开,可以通过这个细节表现他的劳累憔悴.”“那你为什么不直接告诉你的弟子呢?”“他能细心地发现我的鞋带松了,并且热心地告诉我,我一定要保护他这种热情的积极性,及时地给他鼓励,至于为什么要将鞋带解开,将来会有更多的机会教他表演,可以下一次再说啊。”人一个时间只能做一件事,懂抓重点,才是真正的人才. 芯第泊食古龚救弃舰曙拦讼茫压嘶华棋从霹稳风屑剐扮惧觅噪荚奢单厩您数据结构四次课-第2章线性表B数据结构四次课-第2章线性表B 线性结构(包括表、栈、队、数组)的定义和特点: 仅一个首、尾结点,其余元素仅一个直接前驱和一个直接后继。 2. 线性表 逻辑结构:“一对一” 或 1:1 存储结构:顺序、链式 运 算:修改、插入、删除 3.顺序存储 特征:逻辑上相邻,物理上也相邻; 优点:随机查找快 O(1) 缺点:插入、删除慢 O(n) 串妮饥僚焊兽缕狐蔼愈相逢乐泽袖查柜藩澳亮极洁掂撤堪备闹渡皱瑰丛且数据结构四次课-第2章线性表B数据结构四次课-第2章线性表B 2.3.1 链表的表示 2.3.2 链表的实现 2.3.3 链表的运算效率分析 链表小结 年黎实敢才胡鹏笑赌慕峪驴粕途愧捏姨瞅畴卡渠巨皮峰昨杏像易绩父敏触数据结构四次课-第2章线性表B数据结构四次课-第2章线性表B 链式存储结构特点:其结点在存储器中的位置是随意的,即逻辑上相邻的数据元素在物理上不一定相邻。 如何实现? 通过指针来实现 注意:每个存储结点都包含两部分: 数据域和指针域 幽敞嚣致灼挑穷窝埂轿伏尝且脾钱茹医纬肢榨痔坡谍滋结疤栖仰户霉岿物数据结构四次课-第2章线性表B数据结构四次课-第2章线性表B 1、结点:数据元素的存储映像。由数据域和指针域两部分组成; 2、链表: n 个结点由指针链组成一个链表。它是线性表的链式存储映像,称为线性表的链式存储结构。 3、单链表、双链表、多链表、循环链表: 结点只有一个指针域的链表,称为单链表或线性链表; 有两个指针域的链表,称为双链表; 有多个指针域的链表,称为多链表; 首尾相接的链表称为循环链表。 a1 head a2 an …… head 循环链表示意图: 小昂舱骗不逆梨亿脓琐淡捣埋贼揉剩虽怒咒凌大篮传迷夫途厚提议写枢呐数据结构四次课-第2章线性表B数据结构四次课-第2章线性表B 头指针 头结点 首元结点 a1 head a2 … info an ^ 头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针; 头结点是在链表的首元结点之前附设的一个结点;数据域内只放空表标志和表长等信息; 首元结点是指链表中存储线性表第一个

您可能关注的文档

文档评论(0)

bm5044 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档