数据结构教程5..数组和广义表.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 数组和广义表 ⒈教学内容: 5.1 多维数组 5.2 特殊矩阵的压缩存储 5.3 稀疏矩阵 5.4 广义表 ⒉教学目的: ⑴理解多维数组的结构特点和在内存中的两种顺序存储方式; ⑵理解并掌握矩阵和特殊矩阵元素在存储区中地址的计算; ⑶领会稀疏矩阵的压缩方式和简单运算; ⑷了解广义表的定义和基本运算。 第五章 数组和广义表 ⒊教学重点: ⑴多维数组的逻辑结构; ⑵多维数组的两种顺序存储方式,计算给定元素在存储区中的地址; ⑶对称矩阵、三角矩阵的压缩存储方式; ⑷稀疏矩阵的三元组表表示方法。 ⒋教学难点: 稀疏矩阵的压缩存储表示下的运算的实现 5.1 多维数组 数组的逻辑结构 数组的内存映象 5.1.1 数组的逻辑结构 数组是我们熟悉的一种数据结构,可以看作线性表的推广。数组作为一种数据结构其特点是结构中的元素本身可以是具有某种结构的数据,但属于同一数据类型,比如:一维数组可以看作一个线性表,二维数组可以看作“数据元素是一维数组”的一维数组,三维数组可以看作“数据元素是二维数组”的一维数组,依此类推。 5.1.2 数组的内存映象 通常,数组在内存被映象为向量,即用向量作为数组的一种存储结构,这是因为内存的地址空间是一维的,数组的行列固定后,通过一个映象函数,则可根据数组元素的下标得到它的存储地址。 对于一维数组按下标顺序分配即可。 对多维数组分配时,要把它的元素映象存储在一维存储器中,一般有两种存储方式:一是以行为主序(或先行后列)的顺序存放,如BASIC、PASCAL、COBOL、C等程序设计语言中用的是以行为主的顺序分配,即一行分配完了接着分配下一行。另一种是以列为主序(先列后行)的顺序存放,如FORTRAN语言中,用的是以列为主序的分配顺序,即一列一列地分配。 5.2 特殊矩阵的压缩存储 对称矩阵 三角矩阵 带状矩阵 它是一个m×n的矩阵。 所谓特殊矩阵就是元素值的排列具有一定规律的矩阵。常见的这类矩阵有:对称矩阵、下(上)三角矩阵、对角线矩阵等等。 5.2.1 对称矩阵 对称矩阵的特点是:在一个n阶方阵中,有aij=aji ,其中1≤i , j≤n,如图所示是一个5阶对称矩阵。 5.2.2 三角矩阵 形如下图的矩阵称为三角矩阵,其中c为某个常数。其中(a)为下三角矩阵:主对角线以上均为同一个常数;(b)为上三角矩阵,主对角线以下均为同一个常数;下面讨论它们的压缩存储方法。 下(上)三角矩阵的特点是以主对角线为界的上(下)半部分是一个固定的值,下(上)半部分的元素值没有任何规律。比如,下面是一个下三角矩阵: k是下三角矩阵位于(i,j)位置的元素在一维数组中的存放位置。 对角矩阵的特点是所有的非零元素都集中在以主对角线为中心的带状区域中。比如,下面就是一个3阶对角矩阵: n阶矩阵A称为带状矩阵,如果存在最小正数m ,满足当∣i-j∣≥m 时,aij =0,这时称w=2m-1为矩阵A的带宽。下图是一个w=3(m=2)的带状矩阵。带状矩阵也称为对角矩阵。由下图可看出,在这种矩阵中,所有非零元素都集中在以主对角线为中心的带状区域中,即除了主对角线和它的上下方若干条对角线的元素外,所有其他元素都为零(或同一个常数c)。 5.3 稀疏矩阵 稀疏矩阵的三元组表存储 稀疏矩阵的十字链表存储 5.3.1 稀疏矩阵的三元组表存储 将三元组按行优先的顺序,同一行中列号从小到大的规律排列成一个线性表,称为三元组表,采用顺序存储方法存储该表。如图(a)稀疏矩阵对应的三元组表为图(b)。 5.3.2 稀疏矩阵的十字链表存储 三元组表可以看作稀疏矩阵顺序存储,但是在做一些操作(如加法、乘法)时,非零项数目及非零元素的位置会发生变化,这时这种表示就十分不便。 在这节中,我们介绍稀疏矩阵的一种链式存储结构——十字链表,它同样具备链式存储的特点,因此,在某些情况下,采用十字链表表示稀疏矩阵是很方便的。 5.4 广义表 顾名思义,广义表是线性表的推广。也有人称其为列表(Lists,用复数形式以示与统称的表List的区别)。 广义表的定义和基本运算 广义表的存储 广义表基本操作的实现 5.4.1 广义表的定义和基本运算 ⒈广义表的定义和性质 线性表是由n个数据元素组成的有限序列。其中每个组成元素被限定为单元素,有时这种限制需要拓宽。例如,中国举办的某体育项目国际邀请赛,参赛队清单可采用如下的表示形式: (俄罗斯,巴西,(国家,河北,四川),古巴,美国,(),日本) 在这个拓宽了的线性表中,韩国队应排在美国队的后面,但由于

文档评论(0)

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

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

1亿VIP精品文档

相关文档