第5章-数组与广义表-4学时.pptx

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

第5章 数组和广义表;5.1 数组的定义;5.1.1 数组的抽象数据类型定义 ; 由上述定义知,n维数组中有b1?b2 ? … ? bn个数据元素,每个数据元素都受到n维关系的约束。 2 直观的n维数组 以二维数组为例讨论。将二维数组看成是一个定长的线性表,其每个元素又是一个定长的线性表。 设二维数组A=(aij)m?n,则 A=(α1,α2,…,αp) (p=m或n) 其中每个数据元素αj是一个列向量(线性表) : αj =(a1j ,a2j ,…,amj) 1≦j≦n 或是一个行向量: αi =(ai1 ,ai2 ,…,ain) 1≦i≦m 如图5-1所示。; a11 a12 … a1n a21 a22 … a2n … … … … … am1 am2 … amn;5.2 数组的顺序表示和实现;通常有两种顺序存储方式: ⑴ 行优先顺序(Row Major Order) :将数组元素按行排列,第i+1个行向量紧接在第i个行向量后面。对二维数组,按行优先顺序存储的线性序列为: a11,a12,…,a1n, a21,a22,…a2n ,……, am1,am2,…,amn PASCAL、C是按行优先顺序存储的,如图5-2(b)示。 ⑵ 列优先顺序(Column Major Order) :将数组元素按列向量排列,第j+1个列向量紧接在第j个列向量之后,对二维数组,按列优先顺序存储的线性序列为: a11,a21,…,am1, a12,a22,…am2, ……, an1,an2,…,anm FORTRAN是按列优先顺序存储的,如图5-2(c)。;图5-2 二维数组及其顺序存储图例形式; 设有二维数组A=(aij)m?n,若每个元素占用的存储单元数为l(个),LOC[a11]表示元素a11的首地址,即数组的首地址。 1 以“行优先顺序”存储 ⑴ 第1行中的每个元素对应的(首)地址是: LOC[a1j]=LOC[a11]+(j-1)?l j=1,2, …,n (2) 第2行中的每个元素对应的(首)地址是: LOC[a2j]=LOC[a11]+n?l +(j-1)? l j=1,2, …,n … … … ⑶ 第m行中的每个元素对应的(首)地址是: LOC[amj]=LOC[a11]+(m-1)?n?l +(j-1)? l j=1,2, …,n ;; n维数组中任一元素aj1j2…jn的(首)地址是: LOC[aj1j2…jn]=LOC[a11 …1]+[(b2?…?bn)?(j1-1) + (b3?…?bn)?(j2-1)+ … + bn?(jn-1-1)+ (jn-1)] ? l (5-3);2 以“列优先顺序”存储 ⑴ 第1列中的每个元素对应的(首)地址是: LOC[aj1]=LOC[a11]+(j-1)? l j=1,2, …,m (2) 第2列中的每个元素对应的(首)地址是: LOC[aj2]=LOC[a11]+m? l +(j-1)? l j=1,2, …,m … … … ⑶ 第n列中的每个元素对应的(首)地址是: LOC[ajn]=LOC[a11]+ (n-1)?m? l +(j-1)? l j=1,2, …,m 由此可知,二维数组中任一元素aij的(首)地址是: LOC[aij]=LOC[a11]+[(i-1)?m+(j-1)]? l (5-1) i=1,2, …,n j=1,2, …,m ;;;5.3 矩阵的压缩存储;5.3.1 特殊矩阵; 对称矩阵中的元素关于主对角线对称,因此,让每一对对称元素aij和aji(i≠j)分配一个存储空间,则n2个元素压缩存储到n(n+1)/2个存储空间,能节约近一半的存储空间。 不失一般性,假设按“行优先顺序”存储下三角形(包括对角线)中的元素。 设用一维数组(向量)sa[0…n(n+1)/2]存储n阶对称矩阵,如图5-4所示。为了便于访问,必须找出矩阵A中的元素的下标值(i,j)和向量sa[k]的下标值k之间的对应关系。;; 根据上述的下标对应关系,对于矩阵中的任意元素aij,均可在一维数组sa中唯一确定其位置k;反之,对所有k=1,2, …,n(n+1)/2,

文档评论(0)

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

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

1亿VIP精品文档

相关文档