数据结构-3期(KC002) 电子教材 线性表的结构分析与应用.docx

数据结构-3期(KC002) 电子教材 线性表的结构分析与应用.docx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 18 第2章 线性表的结构分析与应用 【学习目标】 了解线性表的有关概念及逻辑结构。 熟练掌握线性表的顺序存储结构及顺序表的基本操作实现。 熟练掌握线性表的链式存储结构——单链表以及单链表上的基本操作实现。 理解循环链表的存储结构及简单操作实现。 理解掌握顺序表和单链表的各自特点及适用场合。 PPT: PPT:第2章 线性表的结构分析与应用 教学指导:第2章 线性表的结构分析与应用 第2章 线性表的结构分析与应用 第2章 线性表的结构分析与应用 实例描述——约瑟夫问题方案设计 M个人围成一圈,从第一个人开始依次从1循环报数,每当报数为N时此人从圈中出来,下一个人又从1开始报数,直到圈中只剩下一个人为止。请按退出次序输出出圈人员的编号以及留在圈中的最后一个人原来的编号。实例描述图如图2-1所示。动画:约 动画:约瑟夫游戏 (a) 报数到第3个人 (b) 第3个人退出,报数到第6个人 (c) 第6个人退出 图2-1 约瑟夫实例描述图 知识储备 微视频:线性表的逻辑结构2.1线性表的逻辑结构 微视频:线性表的逻辑结构 1.线性表的逻辑定义 线性表是由n(n≥0)个数据元素(结点)a1,a2,…,an组成的有限序列。动画:线性表的逻辑结构 动画:线性表的逻辑结构 线性表的逻辑结构特征(对于非空的线性表)如下。 ①仅有一个开始结点a1,没有直接前趋,仅有一个直接后继a2; ②仅有一个终结结点an,没有直接后继,仅有一个直接前趋an-1; ③其余的内部结点ai都有且仅有一个直接前趋和一个直接后继。 2.常见的线性表的基本运算 ①InitList(L):构造一个空的线性表L,即表的初始化。 ②ListLength(L):求线性表L中的结点个数,即求表长。 ③GetNode(L,i):取线性表L中的第i个结点,1≤i≤ListLength(L)。 ④LocateNode(L,x):在L中查找值为x 的结点,并返回x在L中的位置。若L中没结点的值为x,则返回一个特殊值表示查找失败。 ⑤InsertList(L,x,i):在表L的第i个位置上插入一个值x的结点。 ⑥DeleteList(L,i):删除线性表L的第i个结点。 2.2线性表的顺序存储结构 2.2.1 顺序表定义及地址计算 微视频:顺序表的定义1.顺序表的定义:用顺序存储方法存储的线性表。所谓顺序 存储方法就是把线性表的结点按逻辑次序依次存放在一组地址连续的存储单元里的方法。实例演示如图2-2(a)和图2-2(b)所示,5名逻辑上是连续的学生坐在连续的5个座位上,这种结构就是顺序表的结构。 微视频:顺序表的定义 动画:学生连续入座 动画:学生连续入座 (a) (b) 图2-2 学生顺序存储结构描述图 微视频:顺序表的地址计算2.地址的计算方法 微视频:顺序表的地址计算 设线性表中所有结点类型相同,每个结点占用存储空间大小亦相同。假设每个结点占用c个存储单元,其中第一个单元的存储地址则是该结点的存储地址,并设开始结点a1的存储地址是LOC(a1),那么结点ai的存储地址LOC(ai)可通过下式计算: LOC(ai)= LOC(a1)+(i-1)*c?? (1≤i≤n) 例如:已知LOC(a1)为100,每个结点占用4个存储单元,LOC(a4)为112。具体描述见图2-3所示。 存储地址: 100 104 108 112 116 a1 a2 a3 a4 a5 图2-3 顺序表的存储描述 3.顺序表类型定义 ? typedef struct { ?? int data[ListSize];//数组data用于存放表结点,ListSize表示数组大小 ?? int length; //当前的表长度 }SeqList;//结构体类型 2.2.2 顺序表基本运算 在顺序表中,线性表的求表长、查找、取表中结点的运算很容易实现,所以在此主要讨论插入和删除两种运算。 微视频:顺序表的插入运算1.插入 微视频:顺序表的插入运算 线性表的插入运算是指在表的第i(1≤i≤n+1)个位置上,插入一个新结点x,使长度为n的线性表变成长度为n+1的线性表。实例演示如图2-4(a)和图2-4(b)所示,如果某位学生要坐在第三个座位,那么第四个位置的学生要先让座位,然后第三个位置的学生让座位,最后该学生坐下。 (a) (b) 图2-4 学生入座描述图动画:学生入座中间位置 动画:学生入座中间位置 顺序表插入操作过程:将表中位

您可能关注的文档

文档评论(0)

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

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档