第2章线性表3(第5次课)分析.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 2.5 顺序表和链表的综合比较 * 线性表长度的考虑 若表的长度增加不太多时,顺序表可作为首选的结构;反之,则选择链表。 算法所涉及到具体操作的考虑 算法是否频繁遇到插入和删除的操作?如是,则选用链表。 算法是否常会遇到位序的定位操作?如是,则以顺序表为宜。 * 本章学习要点 * 1. 了解线性表的逻辑结构特性是数据元素之间存在着线性关系,在计算机中表示这种关系的两类不同的存储结构是顺序存储结构和链式存储结构。用前者表示的线性表简称为顺序表,用后者表示的线性表简称为链表。 * 2. 熟练掌握顺序表和链表这两类存储结构的描述方法,以及线性表的各种基本操作的实现。 链表的形式有多种变种,可根据需要酌情采用。 * 3. 能够从时间和空间复杂度的角度综合比较线性表两种存储结构的不同特点及其适用场合。 如果线性表的元素之间存在有序性,则选用有序表类型,常可以优化算法的时间复杂度。 第4次书面作业 2.1,2.2,2.3,2.4,2.7 第5次上机作业 单链表的实现 1. 编写LinkList.h文件 (1) 结构体定义. p32 (2) 插入结点方法. p35 (3) 删除结点的方法. p36 (4) 输出结点数据的方法. 自己写. 2. 编写 *.cpp文件 主函数,在主函数中调用LinkList.h中的方法 第4次书面作业 2.1,2.2,2.3,2.4,2.7 * 第2章 线性表3 线性表是一种最简单的数据结构,也是构造其它各类复杂数据结构的基础。它有顺序和链式两种存储表示方法。 线性表的类型定义包括它的逻辑定义及其操作,以不同的存储方式表示线性表时,其操作也各具特色。 通过对线性表的操作及线性表应用算法的评价,可以加深对算法分析方法的理解。 * 2.3 线性表的链式表示和实现 2.4 有序表 2.5 顺序表和链表的综合比较 * 2.3 线性表的链式表示和实现 现在讨论线性表的另一种存储表示 ━━ 链表,并以此来实现线性表类型的操作。在具体实现中,淡化了位序的概念。 * 一、单链表 二、结点和单链表的 C 语言描述 三、单链表的基本操作 四、单链表的创建操作 五、其它形式的链表 * 用一组地址任意的存储单元存放线性表中的数据元素。 一、单链表 以元素(数据元素的映象) + 指针(指示后继元素存储位置) = 结点 (表示数据元素 或 数据元素的映象) 以“结点的序列”表示线性表 ?? 称作链表 * 以线性表中第一个数据元素a1的存储地址作为线性表的地址,称作线性表的头指针。 头结点 a1 a2 … ... an ^ 头指针 头指针 有时为了操作方便,在第一个结点之前虚加一个“头结点”,以指向头结点的指针为链表的头指针。 空指针 线性表为空表时, 头结点的指针域为空 ? * typedef struct LNode { ElemType data; // 数据域 struct LNode *next; // 指针域 } LNode, *LinkList; 二、结点和单链表的 C 语言描述 LinkList L; // L 为单链表的头指针 * 三、单链表的基本操作 ListLength_L // 求线性表的长度 LocateElem_L // 查找元素 ListInsert_L // 插入结点 ListDelete_L // 删除结点 * 线性表的操作 ListLength_L( L ) 在单链表中的实现: L 21 18 30 75 42 56 ∧ p k 0 p 1 p 2 p 3 4 p 5 p p 6 * 单链表只能按顺序存取,求以此为存储表示的线性表长度,可设置一个计数器。 边遍历链表的结点,边进行计数,当遍历的指针跑空时,计数器的累计结果即为线性表的长度。 * int ListLength_L( LinkList L ) { // L 为链表的头指针,本函数返回 L 所指链表的长度 p=L; k=0; while ( p ) { k++; p=p-next; // k

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档