- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 多维数组及广义表 前3章介绍的数据结构共同特点: (1)线形表,栈,队列都属于线性数据结构;每个元素只有一个直接前驱和直接后继。 (2)每种数据结构中的数据元素,都作为原子数据,不再进行分解; 本章讨论的多维数组和广义表是线性结构的推广,从整体上看它们是多个元素组成的线性表,而从局部上看线性表中的数据元素不一定是原子类型,即数据元素又可以具有某种数据结构。 主要内容: 4.1 多维数组 多维数组的逻辑结构特征及存储方式 4.2 矩阵的压缩存储 特殊矩阵和稀疏矩阵的压缩存储 4.3 广义表 广义表的定义和运算 4.1 多维数组 一、多维数组的逻辑结构特征 在高级程序设计语言中,数组是大家非常熟悉的一种数据类型。数组中的元素具有相同类型,且下标一般具有固定的上界和下界。 数组可以是一维的,也可以是多维的。 本章主要以二维数组为例来分析多维数组的逻辑结构特征和存储结构。 从逻辑上看,二维数组是一维数组的推广,二维数组可以看成是由多个一维数组组成的。 例如:二维数组Amn既可看成由m个行向量组成的线性表,也可看成是由n个列向量组成的线性表。 经过分析,二维数组的逻辑结构具有如下特征: a00为开始结点,它没有直接前趋; am-1,n-1为终端结点,它没有直接后继; 结点a0,n-1和am-1,0都有一个直接前趋和一个直接后继; 除以上四个结点外,第一行和第一列的元素都有一个直接前趋和两个直接后继,最后一行和最后一列的元素都有两个直接前趋和一个直接后继; 其余的非边界元素aij同时处于第i+1行的行向量中和第j+1列的列向量中,都有两个直接前趋和两个直接后继。 二、多维数组的存储 若要实现二维数组的运算,就要考虑二维数组的存储结构。 二维数组的元素具有相同类型; 数组在定义之后,元素的个数及元素之间的关系都不会改变,即没有插入和删除运算, 因此,二维数组一般采用顺序存储。 但,由于内存单元是一维的线性关系,而二维数组中元素之间的关系是非线性的,所以需要将二维数组中的元素按照某种原则排列成点的线性序列,然后再依次存放到连续的存储单元中。 二、多维数组的存储 通常二维数组有行优先和列优先两种排列原则。 (1)行优先原则,是指先排列二维数组的第一行中的数据元素,再排列第二行中的数据元素,……,以此类推。 (2)列优先原则,是指先排列二维数组的第一列中的数据元素,再排列第二列中的数据元素,……,以此类推。 详细分析过程: 例:若二维数组Amn按列优先原则排列,则线性序列为: a00,a10,…,am-1,0,a01,a11,…,am-1,1,……,am-1,n-1 存储后的内存状态如图所示: 详细分析过程: 例:数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( ) 。 答:1000+(5*6+5)*5=1175 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1 到8 ,j的值为1 到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( )。 答:BA+(7*8+4)*3=BA+180 4.2 矩阵的压缩存储 计算机在处理工程问题时,通常使用二维数组来存储矩阵,但是实际问题中的矩阵往往阶数较大,而有效数据(非零元素)很少且分布没有规律,若用上面讨论的二维数组存储,其存储密度小(存储了大量的零元素),浪费了存储空间。 矩阵的压缩存储通常指在存储数据元素时,只存储非零元素,对零元素不分配空间;为多个相同的非零元素分配一个存储空间。 下面分别讨论特殊矩阵和稀疏矩阵的压缩存储。 一、特殊矩阵 特殊矩阵是指非零元素或零元素分布有一定规律的矩阵。例如,对称矩阵、三角矩阵(上三角阵和下三角阵)及对角矩阵,特殊矩阵可以根据元素的分布规律来进行压缩存储。 不同的特殊矩阵中元素的分布规律不同,压缩存储的方法也不同。 1.对称矩阵 对称矩阵中的数据元素按主对角线对称,只需存储下三角或上三角中的元素即可。上三角或下三角中的元素可按行优先或列优先存储。由此可得四种存储方法: 行优先顺序存储下三角 列优先顺序存储下三角 行优先顺序存储上三角 列优先顺序存储上三角。 每种方法中元素的存储地址都可以通过公式计算出来,且具有随机存取的特点。 (1)行优先顺序存储下三角 以图(a)所示的n阶方阵为例,行优先顺序存储下三角时元素的排列顺序如图(b)所示,存储在一维数组中如图(c)所示。 下三角中任一数据元素aij (i≥j),位于第i+1行的第j+1列,则排在它前面的i行元素共有1+2+3+……+
您可能关注的文档
- 《质量》课件-人教版讲述.ppt
- 《质量问题处理和质量事故责任追究制度》讲述.doc
- 【学练优】2016八年级政治下册第五单元市场考察品第13课市场经济是公平经济(第1课时)课件教科版讲述.ppt
- 《治水必躬亲》定稿讲述.ppt
- 《治水必躬亲》优秀实用组合课件讲述.ppt
- 《智慧广场:排列规律》参考课件2讲述.ppt
- 第一章概论2013年重点.ppt
- 世界旅游景点(欧洲篇)-瑞典讲述.ppt
- 《智取生辰纲》课件_2008讲述.ppt
- 【赢在课堂】2016-2017学年高中物理第4章牛顿运动定律7用牛顿运动定律解决问题(二)课件讲述.ppt
- 2025年中山市沙溪镇人民政府所属事业单位招聘11人笔试备考题库及参考答案详解一套.docx
- 2025年中山市横栏镇人民政府所属事业单位第二期招聘笔试高频难、易错点备考题库及参考答案详解一套.docx
- 2025年中山市横栏镇人民政府所属事业单位第二期招聘笔试高频难、易错点备考题库含答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库及完整答案详解1套.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库参考答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试高频难、易错点备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库附答案详解.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库及答案详解一套.docx
- 2025年中山市阜沙镇人民政府所属事业单位招聘笔试备考题库及完整答案详解1套.docx
文档评论(0)