- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章节数组广义表
第五章 数组和广义表 数组描述 2.数组的基本运算 数组的存储映像 数组元素的地址计算 数组元素的地址计算 数组元素的地址计算 数组元素的地址计算 5.3矩阵的压缩存储 特殊矩阵的压缩 特殊矩阵的压缩 特殊矩阵的压缩 5.3.2稀疏矩阵的压缩存储 1.三元组表 三元组表的转置 三元组表的转置 三元组表的转置 2.十字链表 十字链表 5.4广义表的定义 广义表 广义表 5.5广义表的存储结构 广义表的存储 广义表的存储 广义表的存储 第五章小结 在线性表L=(a0 a1,……,an-1)中,数据元素ai是无结构的(称为原子或单元素),即ai本身不再是一个数据结构。本章的数组和广义表是线性结构的推广。在这种结构中,元素本身可以又是一个数据结构。本章讨论多维数组的表示、矩阵压缩存储、广义表的表示等问题。 5.1 多维数组的表示 在众多的算法语言中,如FORTRAN、PASCAL和C语言,都有数组类型。前面第二至第四章中线性结构的顺序存储表示,接触到的是一维数组,本节我们以C语言为例讨论多维数组,如多维数组的描述、存储映象、地址计算等问题。 1.数组定义 设二维数组: 其中:m、n为行列数,aij为第i行、第j列的元素,0≤i≤m-1,0≤j≤n-1;元素个数为m×n。 a00 a01 ……a0j …… a0n-1 …………………………………. ai0 ai1 …… aij ….… ain-1 …………………………. am-10 am-11 …am-1j … am-1n-1 A(2) = A[m][n] = 二维数组可用形式化语言描述,即: A(2)=(D,R) 其中:D={aij|aij∈datatype,0≤i≤m-1, 0≤j≤n-1}; R={Row,Col} 行关系:Row={aij,aij+1|aij,aij+1∈D,0≤i≤m-1,0≤j≤n-2} 列关系:Col={aij,ai+1j|aij,ai+1j∈D,0≤i≤m-2,0≤j≤n-1} 关系集Row和Col表明:除数组A(2)周边元素外的其它任一个元素aij,有两个直接前驱ai-1j,aij-1,和两个直接后继ai+1j,aij+1 (周边元素的前驱或后继可不足两个)。n维数组也可按上述方法类似定义。 二维数组还可以用如下形式描述: A[0] … A[i] … A[m-1] = (A[0]……A[i]……A[m-1] )-----线性表形式 a00 a01 ……a0j …… a0n-1 …………………………………. ai0 ai1 …… aij ….… ain-1 …………………………. am-10 am-11 …am-1j … am-1n-1 A(2) = A[m][n] = 多维数组是线性表的推广,而线性表是多维数组的特例。 在算法语言中,数组一旦生成,其元素的存储空间就固定下来,故数组的运算一般不包括插入和删除这样的操作。对数组运算有: (1) 构造一个n维数组:Setarray(A,n,d1d2,......dn),即生成: A[d1][d2].....[dn](C语言中,1≤n≤8)。 (2) 撤消一个数组:Dearray(A),释放数组A的存储空间。 (3) 取值:Aget(A,i1,...,in,x),将A[i1][i2],...,[in]的值传给变量 x。 (4) 赋值:Assign(A,i1,...,in,x),将变量 x的值传给A[i1][i2].....[in]。 5.2 数组的存储映像 由于计算机的存储空间是一维的(或线性的),所以存储数组时,要将多维数组中的元素按某种次序映象到一维存储空间,即解决“降维”问题。 在PASCAL和C等语言中,是按低维下标优先变化(或按行优先)的方式,存储数组中的元素。如在C语言中,二维数组的映像如图5.1所示。 但在FORTRAN语言中,数组元素是按高维下标优先变化或按列优先方式,存储数组中的元素。 am-1,n-1 … … ai,n-1 … ai0 … a0,n-1 … a00 映像 ( 存储器) a00 a01 ……a0j …… a0n-1 …………………………………. ai0 ai1 …… aij ….… ain-1 …………………………. am-10 am-11 …am-1j … am-1n-1
您可能关注的文档
最近下载
- (建筑工程管理)砌砖及基础工程技术交底.pdf VIP
- DB11∕T 1748-2020 物体表面新型冠状病毒样本采集技术规范.pdf
- 三年级劳动技术浙教版下册:任务二 煮鸡蛋 蒸馒头-教学课件.pptx
- (高清版)-B-T 34590.10-2022 道路车辆 功能安全 第10部分:指南.pdf VIP
- 人教版二年级上册数学全册教学设计(配2025年秋新版教材).docx
- 江苏省建筑工程施工质量验收资料 .docx
- 2025新修订《监察法实施条例》培训课件.pptx VIP
- NB∕T 25043.6-2016 核电厂常规岛及辅助配套设施建设施工技术规范 第6部分:管道.pdf
- 2025年四年级上册数学口算天天练100题.pdf VIP
- 《小篮球多种形式的抛接球游戏》第一课时教学设计.pdf VIP
文档评论(0)