[教育学]第五章数组与广义表.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文档。上传文档
查看更多
[教育学]第五章数组与广义表

第五章 多维数组和广义表 概述 多维数组和广义表是一种复杂的非线性结构,它们的逻辑特征是:一个数据元素可能有多个直接前驱和多个直接后继。 主要内容 5.1 数组的定义和运算 5.2 数组的顺序存储和实现 5.3 特殊数组的压缩存储 5.4 广义表 5.1数组的定义 二维或二维以上的数组称为多维数组。常遇到二维和三维数组。 5.1数组的定义和运算 数组的定义,一维数组是线性表,二维数组可以认为是元素为线性表的线性表。 同类型,等长度,连续存放。 1.一维数组 一维数组(向量)是存储于计算机的连续存储空间中的多个具有同一类型的数据元素。 ?同一数组的不同元素通过不同的下标标识。 ?????? (a1,a2,…,an) 2、二维数组 二维数组Amn可视为由m个行向量组成的向量,或由n个列向量组成的向量。 二维数组图示 二维数组中的每个元素aij既属于第i行的行向量,又属于第j列的列向量。 3、多维数组 维数组Amnp可视为以二维数组为数据元素的向量。四维数组可视为以三维数组为数据元素的向量…… ??? 三维数组中的每个元素aijk都属于三个向量。四维数组中的每个元素都属于四个向量…… 数组的运算 数组是一组有固定个数的元素的集合。一旦定义了。 数组的基本操作: 获得某个位置的值;  和给某个位置的元素置值。 5.2数组的顺序存储和实现 由于计算机内存是一维的,多维数组的元素应排成线性序列后存人存储器。 (1)行优先顺序 (2)列优先顺序 (1)行优先顺序 数组元素按行向量排列,第i+1个行向量紧接在第i个行向量后面。 【例】二维数组Amn的按行优先存储的线性序列为: ??? a11,a12,…,a1n,a21,a22,…,a2n,……,am1,am2,…,amn (2)列优先顺序 将数组元素按列向量排列,第i+1个列向量紧接在第i个列向量后面。 【例】二维数组Amn的按列优先存储的线性序列为: ??? a11,a21,…,am1,a12,a22,…,am2,……,a1n,a2n,…,amn 5、数组元素的地址计算公式 (1)按行优先顺序存储的二维数组Amn地址计算公式 ??????? LOC(aij)=LOC(a11)+[(i-1)×n+j-1]×d 其中:  ①LOC(a11)是开始结点的存放地址(即基地址)  ②d为每个元素所占的存储单元数  ③由地址计算公式可得,数组中任一元素可通过地址公式在相同时间内存取。即顺序存储的数组是随机存取结构。 三维数组的地址公式 按行优先顺序存储的三维数组Amnp地址计算公式 ????? LOC(aijk)=LOC(a111)+[(i-1)×n×p+(j-1)×p+k-1]×d 5.3特殊矩阵的压缩存储 1、矩阵的非压缩存储 矩阵用二维数组描述时,存储的密度为1。可以对其元素进行随机存取,各种矩阵运算也非常简单。 2、矩阵的压缩存储 矩阵中非零元素呈某种规律分布或者矩阵中出现大量的零元素的情况下,为了节省存储空间,我们可以对这类矩阵进行压缩存储:即为多个相同的非零元素只分配一个存储空间;对零元素不分配空间。 特殊矩阵  所谓特殊矩阵是指非零元素或零元素的分布有一定规律的矩阵。常见的有对称矩阵、三角矩阵和对角矩阵等。 1.对称矩阵 1.对称矩阵 ???  在一个n阶方阵A中,若元素满足下述性质:? ?????? aij=aji 0≤i,j≤n-1 则称A为对称矩阵。 示例 【例】下图便是一个5阶对称矩阵。 2. 对称矩阵的压缩存储 ??? 对称矩阵中的元素关于主对角线对称,故只要存储矩阵中上三角或下三角中的元素,让每两个对称的元素共享一个存储空间。这样,能节约近一半的存储空间。 ①按行优先顺序存储主对角线(包括对角线)以下的元素 对称矩阵的压缩存储 ②元素aij的存放位置 aij元素前有i行(从第0行到第i-1行),一共有: ??????1+2+…+i=i×(i+1)/2个元素; 在第i行上,aij之前恰有j个元素(即ai0,ail,…,ai,j-1),因此有: ?????????? sa[i×(i+1)/2+j]= aij? 2、三角矩阵 (1)三角矩阵的划分 ??? 以主对角线划分,三角矩阵有上三角矩阵和下三角矩阵两种。 ①上三角矩阵 ??? 如下图(a)所示,它的下三角(不包括主角线)中的元素均为常数c(一般为零,不要考虑)。 ②下三角矩阵 ??? 与上三角矩阵相反,它的主对角线上方均为常数c,如下图(b)所示。 ? 注意:  ??? 在多数情况下,三角矩阵的常数c为零。 示意图 (2)三角矩阵的压缩存储 ??? 三角矩阵中的重复元素c可共享一个存储空间,其余的元素正好有n×(n+1)/2个,因此,三角矩阵可压缩存储到向量sa[0..n

文档评论(0)

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

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

1亿VIP精品文档

相关文档