第3章 线性数据结构.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 非线性数据结构 3.1 数组 3.1.1 引言 3.1.2 数组的逻辑结构 3.1.3 数组的存储结构 3.1.4 特殊矩阵的压缩存储 3.1.5 数组的应用 3.2 树 3.2.1 引言 3.2.2 树的定义及逻辑结构 3.2.3 二叉树 3.2.4 树的存储结构 3.2.5 树的遍历 3.2.6 树、森林与二叉树的转换 3.2.7 树的应用 3.2.8 小结 3.1 数 组 3.1.2 数组的逻辑结构 逻辑关系是非线性的,实质上是多个线性关系的组合。 矩阵A可以看成是由m个行向量组成的向量,也可以看成是由n个列向量组成的向量。 在矩阵A中,每个元素aij都属于两个线性表。一个是第i行的行表(ai1,ai2,...,aij,...,ain),另一个是第j列的列表(a1j,a2j,...,aij,...,amj)。这种行表(行向量)和列表(列向量)都相当于线性表。 所以说,数组可看作是线性表的推广,将线性表推广到二维或高维,就是我们所说的数组。 3.1.3 数组的存储结构 数组的顺序分配就是用向量作为数组的存储结构。但是二维以上的多维数组,不像一维数组那样,所有的元素已经排成一个序列,所以要把多维数组顺序地存储到一维顺序的存储器中,则必须对多维数组里的元素存放顺序做出一些规定。 通常数组采用两种顺序存储方式。 1) 行优先顺序存储 行优先顺序存储就是数组元素按行表次序进行存储,即第i+1个行表紧跟在第i个行表后面进行存储。在C、BASIC、PASCAL、COBOL等高级语言中均采用这种方法。 以二维数组Am×n为例,按行优先顺序存储的数组元素次序为: a11,a12,…,a1n,a21,a22,…,a2n,…,am1,am2,…,amn 2) 列优先顺序存储 列优先顺序存储就是数组元素按列表次序进行存储,即第j+1个列表紧跟在第j个列表后面进行存储。在FORTRAN语言中,数组是按列优先顺序组织存储。 以二维数组Am×n为例,按列优先顺序存储的数组元素次序为: a11,a21,…,am1,a12,a22,…,am2,…,a1n,a2n,…,amn 二维数组的两种存储方式 同样,对n维数组也有上述两种不同的顺序分配的存储结构。当把n维数组的元素这样顺序地存放在存储器里,则每个元素的存储地址可以用公式计算出来。这些计算公式称为“地址公式”。 假设每个数据元素占k个存储单元,则可得 (1)一维数组的地址公式为: Loc(ai)= Loc(a1)+(i-1)* k (2)若存储分配采用行优先顺序分配,则二维数组Am×n的地址公式为: Loc(aij)= Loc(a11)+ [(i-1)* n +(j-1)] *k 同理,可写出三维数组、n维数组的数组元素存储地址的计算公式。 (3)若存储分配采用列优先顺序分配,则二维数组Am×n的地址公式为: Loc(aij)= Loc(a11)+ [(j-1)* m +(i-1)] * L 同理,可写出三维数组、n维数组的数组元素存储地址的计算公式。 3.1.4 特殊矩阵的压缩存储 假若值相同的元素或零元素在矩阵中的分布有一定规律,则称此类矩阵为特殊矩阵。像三角矩阵,对称矩阵、三对角矩阵等都属于特殊矩阵。 通常在实际计算中经常出现一些阶数很高的矩阵,同时矩阵中有许多值相同的元素或者零元素。有时为了节省存储空间,可以对这类矩阵进行压缩存储。所谓压缩存储是指:为多个值相同的元素只分配一个存储空间;对零元素不分配空间。 1)三角矩阵 例:下三角矩阵An×n,当ij时,aij=0。 特殊矩阵的压缩存储实际上就是把二维数组的数据元素压缩到一维数组上,即要在下标[i,j]与下标[k]之间建立一个映像关系,使得对二维数组的存取操作通过一维数组来完成。

文档评论(0)

mg60065 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档