- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构第5章数组B
* 数据结构课程的内容 * 第5章 数组和广义表(Arrays Lists) 5.1 数组的定义 5.2 数组的顺序表示和实现 5.3 矩阵的压缩存储 5.4 广义表的定义 5.5 广义表的存储结构 ① 元素的值并非原子类型,可以再分解,表中元素也是一个线性表(即广义的线性表)。 ② 所有数据元素仍属同一数据类型。 数组和广义表的特点:一种特殊的线性表 * 顺序存储方式:按低地址优先(或高地址优先)顺序存入一维数组。 (难点是:多维数组与一维数组的地址映射关系) 例1:已知二维数组Am,m按行存储的元素地址公式是: Loc(aij)= Loc(a11)+[(i-1)*m+(j-1)]*K , 请问按列存储的公式相同吗? 答:尽管是方阵,但公式仍不同,要作修改: Loc(aij)=Loc(a11)+[(j-1)*m+(i-1)]*K 例2:〖00年计算机系考研题〗设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为 。 根据列优先公式 Loc(aij)=Loc(a11)+[(j-1)*m+(i-1)]*K 得:LOC(a32,58)=2048+[(58-1)*60+(32-1)]*2=8950 答:请注意审题! 想一想:若数组是a[0…59, 0…69],结果是否仍为8950? 8950 * 例3:【专科考研资格考试】假设有三维数组A7×9×8,每个元素用相邻的6个字节存储,存储器按字节编址。已知A的起始存储位置(基地址)为1000,末尾元素A[6][8][7]的第一个字节地址为多少?若按高地址优先存储时,元素A[4][7][6]的第一个字节地址为多少? 答: ① 末尾元素A[6][8][7]的第1个字节地址= 1000 +(7×9×8)×6-6=4018 ② 按高地址优先存储时,元素A[4][7][6]的第1个字节地址= 提示:将第3维看作“页码”,前面两维就是每页上的二维数组。 (高维地址计算通式参见清华殷人昆教材的解释) 3586 只要计算出任一数组元素的地址,就能对其轻松地进行读写操作! 计算地址的意义: * ^ … … 行指针向量 a11 a12 … ^ a1n am1 am2 … ^ amn 补充:数组的链式存储方式—用带行指针向量的单链表来表示。 注:链式数组的运算请参见“稀疏矩阵的转置” 注意: 本章所讨论的数组与高级语言中的数组有所区别: 高级语言中的数组是顺序结构;而本章的数组既可以是顺序的,也可以是链式结构,用户可根据需要选择。 * 5.3 矩阵的压缩存储 讨论: 1. 什么是压缩存储? 若多个数据元素的值都相同,则只分配一个元素值的存储空间,且零元素不占存储空间。 2. 所有二维数组(矩阵)都能压缩吗? 未必,要看矩阵是否具备以上压缩条件。 3. 什么样的矩阵具备以上压缩条件? 一些特殊矩阵,如:对称矩阵,对角矩阵,三角矩阵,稀疏矩阵等。 4. 什么叫稀疏矩阵? 矩阵中非零元素的个数较少(一般小于5%) 重点介绍稀疏矩阵的压缩和相应的操作。 * 一、稀疏矩阵的压缩存储 问题: 如果只存储稀疏矩阵中的非零元素,那这些元素的位置信息该如何表示? 解决思路: 对每个非零元素增开若干存储单元,用来存放其所在的行号和列号,便可准确反映该元素所在位置。 实现方法: 将每个非零元素用一个三元组(i,j,aij)来表示,则每个稀疏矩阵可用一个三元组表来表示。 二、稀疏矩阵的操作 * 例1 : 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的 、 和 。 行下标 列下标 元素值 例2:写出右图所示稀疏矩阵的压缩存储形式。 0 12 9 0 0 0 0 0 0 0 0 0 -3 0 0 0 14 0 0 0 24 0 0 0 0 18 0 0 0 0 15 0 0 -7 0 0 ( 1,2,12) ,(1,3,9), (3,1,-3), (3,5,14), (4,3,24), (5,2,18) ,(6,1,15), (6,4,-7) 解:至少有4种存储形式。 法1:用线性表表示: 0 12 9 0 0 0 0 0
您可能关注的文档
最近下载
- 梁氏族谱之祖系.doc VIP
- 工程维修委托协议合同书.docx VIP
- 《RPA财务机器人实训教程》教案示例.docx VIP
- 2023年3月scratch图形化编程等级考试试卷(四级)不带答案.docx VIP
- MITSUBISHI三菱CC-Link IE现场网络Basic远程I_O模块用户手册.pdf
- 2025年公务员多省联考《申论》题(天津市区卷).docx VIP
- 《GNSS原理及应用》全套教学课件.pptx
- 偷窥漫画第一季完整.docx VIP
- 2023《传统资源型城市的产业转型问题研究—以辽宁鞍山市为例》7400字.docx VIP
- 新时代中国特色社会主义理论与实践课件-2024年高教版研究生新中特教材.pdf VIP
文档评论(0)