版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章数组,数组 5.1 数组的定义 5.2 数组的表示与实现 5.2.1 行主序/列主序存储方式 5.2.2 地址计算 5.3 矩阵的压缩存储 5.3.1 特殊矩阵 5.2.2 稀疏矩阵 三元组表 行向量链表 十字链表,4.1 数组的定义,可以从两个层面理解数组元素之间的逻辑关系。,对于一维向量: a1, a2, ., ai-1, ai, ai+1, ., an-1, an 每个结点至多有一个直接前驱,至多有一个直接后继,ai+1是ai的直接后继,ai1是ai的直接前驱,对于二维数组Amn,结点aij处在两个向量的交汇点上,至多有两个直接前驱,两个直接后继。,aij,ai-1 j,ai j1
2、,ai j1,ai+1 j,ai j,第 i 行 .,.,第 j 列,aij的两个直接前驱,aij的两个直接后继,a11 a12 . a1j . a1n a21 a22 . a2j . a2n . . ai1, ai2 . aij . ain . . am1 am2 . amj . amn,a11只有两个后继,没有前驱,am1有一个前驱和一个后继,位于边界上的结点,可能只有一个前驱或一个后继,am2有两个前驱和一个后继,二维数组Amn的形式定义: 数据对象: D= aij | i=1,2,.,m; j=1,2,.,n; aijElemSet 数据关系: R= Row, Col Row= | 1
3、im, 1jn-1 Col = | 1im-1, 1jn ,依此类推,在三维数组中结点aijk处在三个向量的交汇点上。除了边界上的结点外,每个结点有三个直接前驱和三个直接后继。,一般在n维数组中,每个结点处在n个向量的交汇点上,除了边界上的结点外,每个结点有且仅有n个直接前驱,n个直接后继: Ab0b1.bn-1 -b0 , b1,., bn-1每维的长度 数据关系:R R1,R2, ., Rn Ri= | 0jkbk1,1kn,ik 0ji bi2 ,数组的基本运算:,初始化: InitArray( /数组基地址 int dim; /数组的维数 int *bounds; /存放每维长度的数组
4、 int *constants; /存放计算地址的系数的数组 Array;,Ab1b2b3.bn,A.constants,基本运算的函数原型: Status InitArray (Array ,传递数组每维的长度b1,b2,.,bn。参数的数目不固定。,传递数组元素的下标j1,j2,.,jn。参数的数目不固定。,C语言提供了三个宏,用来读取变长参数表: typedef void * valist va_start (valist ap, lastfix); /将ap指针定位于最后一个固定参数lastfix之后的位置上 va_arg (valist ap, Type); /按Type类型返回当前
5、ap所指的参数的值 /再将ap指针右移 va_end(valist ap); /调用结束,Status InitArray(Array ,数组 5.1 数组的定义 5.2 数组的表示与实现 5.2.1 行主序/列主序存储方式 5.2.2 地址计算 5.3 矩阵的压缩存储 5.3.1 特殊矩阵 5.2.2 稀疏矩阵 三元组表 行向量链表 十字链表,4.3 矩阵的压缩存储,压缩存储的前提:当矩阵中含有大量零元素或值相同的元素; 压缩存储的方法:零元素不分配空间,同值元素共享一个存储空间; 根据零元素或值相同的元素在矩阵中分布是否有规律,可将矩阵分为两类: 特殊矩阵 稀疏矩阵,4.3.1特殊矩阵,一
6、、对称矩阵 aij=aji,将矩阵的下三角部分按行主序的次序压缩存储到一维数组Bn(n+1)/2中,a11, a12, ., a1j, ., a1n a21, a22, ., a2j, ., a2n . . ai1, ai2, ., ai j, ., ain . . a n1, an2,., anj, .,ann,Ann,设元素aij在B数组中的下标是K, BK=aij 关键问题是如何通过下标(i, j)来计算K K aij在行主序下的排列序号1,B,aij的前面有i1行,共有i (i1)/2个元素 在第 i 行上,aij是第 j 个元素,所以有: i (i1)/2j1 当 i j (aij位
7、于下三角)时 j (j1)/2i1 当 i j (aij位于上三角)时,二、三角矩阵,a 11 a12 a13 . a1n a22 a23 . a2n a33 . a3n . . ann,C,下三角矩阵,上三角矩阵,n(n+1)/2,下三角矩阵:,K,i (i1)/2j -1 当 i j (aij位于下三角)时 n(n+1)/2 当 i j (aij位于上三角)时,上三角矩阵:,K,(i1)(2ni2) / 2ji 当 i j (上三角)时 n(n+1) / 2 当 i j (下三角)时,n(n+1)/2,第 t 行有 nt+1 个元素,前 i1行共有 (nt+1)(i1)(2ni2) / 2 在第 i 行上,aij是第 ji1个元素,所以,i1,t=1,三、对角矩阵,a11 a12 a2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年动漫课堂考试题目及答案
- 2025福建厦门市集美第二小学非在编教师招聘1人模拟笔试试题及答案解析
- 2025年新疆标检产品检测认证有限公司人员招聘5人备考题库及1套完整答案详解
- 2025河北石家庄建筑行业大型国有企业公开招聘46人笔试参考题库附带答案详解(3卷合一版)
- 2025江西省交投数智科技有限公司招聘12人笔试参考题库附带答案详解(3卷合一版)
- 2025中铁工程装备集团校园招聘笔试备考重点题库及答案解析
- 2025江苏盐城滨海交通控股集团有限公司招聘5人笔试参考题库附带答案详解(3卷合一版)
- 2025广西贵港市覃塘区园区招商服务有限公司工作人员招聘12人笔试参考题库附带答案详解(3卷合一版)
- 吉安市农业农村发展集团有限公司及下属子公司2025年第二批面向社会公开招聘备考题库及一套完整答案详解
- 2025年盒马社会招聘岗位(218个)笔试参考题库附带答案详解(3卷合一版)
- 统编版高中语文选择性必修中册《为了忘却的记念》课件
- 含微生物有机无机复合肥料编制说明
- 沟通的艺术(湖南师范大学)学习通网课章节测试答案
- 煤矿下井车司机培训课件
- 强夯机安全操作知识培训课件
- 和田玉培训知识课件
- 系统接口结构解析
- 知道智慧树材料与社会-探秘身边的材料满分测试答案
- 国家开放大学人文英语3学习行为评价范文
- (高清版)DB4206∕T 94-2025 检验检测机构标准物质与标准溶液 管理规范
- 队列条令考试题及答案
评论
0/150
提交评论