数组和广义表.ppt.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数组和广义表.ppt

第5章 数组和广义表---广义线性表 5.1 数组 讨论:数组与线性表的区别与联系  相同之处:   它们都是若干个相同数据类型的数据元素a0,a1,a2,…,an-1构成的有限序列。  不同之处:   (1)数组要求其元素占用一块地址连续的内存单元空间,而线性表无此要求;   (2)线性表的元素是逻辑意义上不可再分的元素,而数组中的每个元素还可以是一个数组;   (3)数组的操作主要是向某个下标的数组元素中存放数据和取某个下标的数组元素,这与线性表的插入和删除操作不同。 二、数组的实现机制 1、一维数组(n个元素)中任一元素ai的内存单元地址    LOC(ai)=LOC(a0)+i*k (0≤i n) 2、一个m行n列的二维数组   LOC(aij)=LOC(a00)+(i*n+j)*k (0≤im, 0≤jn) 注:C语言中数组元素采用行主序的存放方法,即行优先顺序。 对于行优先顺序:先变化多维数组中最右边的下标,从右往左,最后变化最左边的下标; 对于列优先顺序:先变化数组中最左边的下标,从左往右,最后变化最右边的下标; 可将以上规则推广到n维数组: n维数组A[t1][t2]…[tn],可看成是由t1个(n?1)维数组组成的特殊线性表: a1[t2][t3]…[tn],a2[t2][t3]…[tn],…,at1[t2][t3]…[tn] 同理,若n维数组第一个元素的存储位置为LOC(a00…0),那么对于任何一组有效的下标i1,i2, …,in,其对应的数组元素ai1, i2, …, in的存储位置LOC(ai1, i2, …, in)为: LOC(ai1, i2, …, in) = LOC(a00…0)+d?[i1?t2?t3?…?tn+i2?t3?t4?…?tn+in?1?tn+in] = LOC(a00…0)+d? 注:只要知道以下三要素便可随时求出任一元素的地址(意义:数组中的任一元素可随机存取) ①开始结点的存放首字节地址(即基地址); ②维数和每维的上、下界; ③每个数组元素所占用的单元数。 例1一个二维数组A,行下标的范围是1到6,列下标的范围是0到7,每个数组元素用相邻的6个字节存储,存储器按字节编址。那么,这个数组的体积是 个字节。 答: Volume=m*n*L=(6-1+1)*(7- 0 +1)*6=48*6=288 例2 设数组a[0…60, 0…70]的基地址为2048,每个元素占2个存储单元,若以行序为主序顺序存储,则元素a[32,58]的存储地址为 。 答:根据行优先公式 LOC(aij)=LOC(a00)+(i*n+j)*k (0≤im,0≤jn)   得:LOC(a32,58)=2048+(32*71+58)*2=6708 5.2 特殊矩阵的压缩存储 特殊矩阵:指有许多值相同的元素或有许多零元素、且值相同的元素或零元素的分布有一定规律的矩阵。 下面我们讨论几种特殊矩阵的压缩存储。 1、n阶对称矩阵 在一个n阶方阵A中,若元素满足下述性质: aij=aji (1≦i,j≦n) 则称A为n阶对称矩阵。 1 5 1 3 7 a11 5 0 8 0 0 a21 a 22 1 8 9 2 6 a31 a32 a33 3 0 2 5 1 ……………….. 7 0 6 1 3 an1 an2 an3 …a nn 图 5.1 对称矩阵 n阶对称矩阵中的元素关于主对角线对称,故只要存储矩阵中上三角或下三角中的元素,让每两个对称的元素共享一个存储空间,这样,能节约近一半的存储空间。不失一般性,我们按“行优先顺序”存储主对角线(包括对角线)以下的元素。 1.稀疏矩阵的三元组顺序表 先在三元组t中找到适当的位置k,将k~t.nums个元素后移一个位置,将指定元素x插入到t.data[k]处。 int Value(TSMatrix t,ElemType x,int rs,int cs) { int i,k=0; if ((rs=t.rows)||(cs=t.cols

文档评论(0)

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

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

1亿VIP精品文档

相关文档