- 0
- 0
- 约6.12千字
- 约 43页
- 2023-01-13 发布于江苏
- 举报
Ch.5 数组和广义表黄刘生中国科学技术大学计算机系 国家高性能计算中心(合肥)2008.3.25§5.1 多维数组多维数组 是最易处理的非线性结构。因为各元素类型一致,各维上下界固定,所以它最容易线性化,故可看做是线性表的拓广。例如:二维数组可以看做是由列向量组成的线性表。§5.1 多维数组结构特性例:二维数组?aij∈Amn,它属于两个向量;ith行和jth列。除边界外,每个aij恰有两个直接前驱和两个直接后继§5.1 多维数组非线性特征 ith行:前驱aij-1,后继aij+1 jth列:前驱ai-1j,后继ai+1j 仅有一个开始结点:a11 仅有一个终端节点:amn 其他边界上的结点只有一个直接前驱或一个直接后继,类似的m维数组 的每一个元素都属于m个向量。§5.1 多维数组存储 一般均采用顺序方式存储,原因是结构中的结点不变动,内存是一维的,必须将多维数组线性化。行优先(行主序)方式: 将(i+1)th行向量紧接在ith行向量之后: 特点:列下标变化快。Pascal、C等均是此方法。先排最右下标(多维)。§5.1 多维数组列优先(列主序)方法 特点行下标变化最快,先排最左下标(可推广至多维)。Fortan是用此方法。地址计算 一维存储地址(内部实现)。基地址——开始结点存储地址Loc(a11).维数——每维的上下界(若下界固定,则只须知道维长度)每个元素占用的单元数(结点大小):L§5.1 多维数组例:行主序Am×n 。 A[1..m,1..n]原理: aij的地址=基址+排在aij之前的元素个数×每 个元素的大小 Loc(aij)=Loc(a11)+[(i-1)×n+(j-1)] ×L 前i-1行结点总数 第i行上aij之前的结点数 在C语言中,Am×n是A[0..m-1 , 0..n-1],故有: Loc(aij)=Loc(a00)+[i×n+j] ×L§5.1 多维数组多维推广:以C为例,行主序。思考:A[c1..d1 , c2..d2]Loc(aij)=Loc(ac1c2)+[(i-c1) ×(d2-c2+1)+(j-c2)] ×L ith行前行数 第2维长度ith行aij之前结点数特点:随机存取。 §5.2 矩阵的压缩存储用二维数组表示的特点:随机存取,存储密度为1。但对特殊和稀疏矩阵的存储则浪费空间,尤其是大规模科学与工程计算。§5.2.1 特殊矩阵有规律:压缩后可找到地址变换公式,保持随机存取功能。§5.2 矩阵的压缩存储对称阵 n阶方阵A,若aij=aji 0≤i, j≤n-1, 则称A为对称阵。 因为矩阵元素关于主对角线对称,故只存上三角或下三角元素即可,节约近一半空间。 不失一般性,存储下三角(包括主对角线),行主序存储:元素个数§5.2 矩阵的压缩存储压缩存储: 将其存于向量sa[0..n(n+1)/2-1]中。 如何访问aij?必须将其与sa[k]的对应关系找出来。地址计算:下三角中有i ≥ j. aij之前有i行(0 ~ i-1) 第i行上aij之前元素个数为j(0 ~ j-1). §5.2 矩阵的压缩存储上三角中有i j ∵aji=aij ,只需交换上式的j和i即可得: 令I=max (i , j),J=min (i , j),则k和i,j之关系可统一表示为:三角矩阵 压缩方式同上,在sa中多增加一个单元: sa[0..n(n+1)/2] 将C存于最后一个分量中。§5.2 矩阵的压缩存储对角矩阵 总结:这类矩阵压缩存储后能找到地址计算公式,使其保持随机存取的功能。Ex.5.5,5.6,5.7§5.2 矩阵的压缩存储§ 5.2.2 稀疏矩阵定义:设Amn中有t个非零元素,若t?m×n,称A为稀疏矩阵。稀疏因子:一般非零元素分布无规律性压缩存储: 只存储非零元,故须存储辅助信息,才能确定其位置。 三元组(i,j,aij):(行号,列号,非零元的值)唯一确定一个非零元。 当用三元组表示非零元时,有两种压缩方式:顺序和链式。§5.2 矩阵的压缩存储三元组顺序表(三元组表) 以行主序(或列主序)的顺序存储非零元,跳过零元。得到一个其节点均是三元组的线性表,称此顺序存储结构为三元组表。#define MaxSize 10000typedef int DataTypetypedef struct{//三元组 int i, j; DataType v;}TripleNode;typedef struct{//三元组表 TripleNode data[MaxSize]; int m, n, t; //行数,列数,非零元总数}TripleTable;设a,b是TripleTable型变量。转置运算 Am×n ? Bn×m A[i][j]=B[j][i]
您可能关注的文档
最近下载
- 基于MQTT协议的通用智能家居系统设计与实现-计算机技术专业论文.docx VIP
- 高中数学 第二章 平面向量 2.3.2 平面向量的坐标运算1课件 苏教版4.ppt VIP
- 人工智能安全风险测评白皮书(2025年).docx
- Staubli机器人CS8C 控制器.pdf VIP
- 电影教父1剧本中英文对照版.docx VIP
- 2024年广东省中学生生物联赛试题及答案解析.pdf VIP
- 基于PLC的高层住宅小区自动供水系统设计.pdf
- 《混凝土枕》(TB∕T 2190-2013).pdf VIP
- 统编版语文三年级上册第四单元习作:我来编童话课件.pptx VIP
- 2026年南方电网招聘考试(法律类)经典试题及答案.docx VIP
原创力文档

文档评论(0)