计算机软件技术基础第2节-2.pptx

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机软件技术基础;第2章 基本数据结构及其运算;2.4 线性表的索引存储结构;2.4.1 索引存储的概念;2.4.1 索引存储的概念;2.4.1 索引存储的概念;2.4.1 索引存储的概念;2.4.1 索引存储的概念;2.4.1 索引存储的概念;2.4.1 索引存储的概念;2.4.1 索引存储的概念;2.4.2 “顺序-索引-顺序”存储方式;2.4.2 “顺序-索引-顺序”存储方式;2.4.3 “顺序-索引-链接”存储方式;;;2.4.4 多重索引存储结构;2.4.4 多重索引存储结构;2.5 数 组;主要讨论二维数组,是数学中的矩阵在程序设计语言中的表示。 程序设计语言中的数组在计算机中是顺序存储的。当矩阵中的绝大部分元素为零时,采用一般的二维数组存储方式会浪费大量的存储空间,同时也做了大量不必要的运算。 主要讨论:①一般二维数组的顺序存储结构;②当矩阵中绝大部分为零元素时的表示方法。;1.二维数组以行为主的顺序存储;2.二维数组以列为主的顺序存储;2.5.2 规则矩阵的压缩 1.下三角矩阵的压缩存储;数组的基本概念 数组是n(n>1)个相同类型数据元素a1,a2,…,an构成的有限序列,且该有限序列存储在一块地址连续的内存单元中。 由此可见,数组的定义类似于采用顺序存储结构的线性表。;数组具有以下性质 数组中的数据元素数目固定。一旦定义了一个数组,其数据元素数目不再有增减变化。 数组中的数据元素具有相同的数据类型。 数组中的每个数据元素都和一组惟一的下标值对应。 数组是一种随机存储结构。可随机存取数组中的任意数据元素。;;27;28; 对一个已知以行序为主序的计算机系统中,当二维数组第一个数据元素a1,1的存储地址LOC(a1,1)和每个数据元素所占用的存储单元k确定后,则该二维数组中任一数据元素ai,j的存储地址可由下式确定: LOC(ai,j)=LOC(a1,1)+[(i-1)*n+(j-1)]*k 其中n为列数。;30; 同理可推出在以列序为主序的计算机系统中有: LOC(ai,j)=LOC(a1,1)+[(j-1)*m+(i-1)]*k 其中m为行数。;32;33;34;如果数组中绝大部分的元素为零,将会造成大量存储空间的浪费。所以对此数组必须要考虑压缩存储方法。 ;2011-8-29;2011-8-29;2.5.2 规则矩阵的压缩;39;2011-8-29;41; n2个元素←→ n(n+1)/2个元素 A[0..n-1,0..n-1] ←→ B[0..n(n+1)/2-1] a[i][j] ←→ b[k];43;44;45;46;47;48;49;50;51;52;53; 若把稀疏矩阵的三元组线性表按顺序存储结构存储,则称为稀疏矩阵的三元组顺序表。则三元组顺序表的数据结构可定义如下:; #define MaxSize 100 /*矩阵中非零元素最多个数*/ typedef struct { int r; /*行号*/ int c; /*列号*/ ElemType d; /*元素值*/ } TupNode; /*三元组定义*/ typedef struct { int rows; /*行数值*/ int cols; /*列数值*/ int nums; /*非零元素个数*/ TupNode data[MaxSize]; } TSMatrix; /*三元组顺序表定义*/; 其中,data域中表示的非零元素通常以行序为主序顺序排列,它是一种下标按行有序的存储结构。这种有序存储结构可简化大多数矩阵运算算法。下面的讨论假设data域按行有序存储。; (1) 从一个二维矩阵创建其三元组表示 以行序方式扫描二维矩阵A,将其非零的元素插入到三元组t的后面。算法如下: void CreatMat(TSMatrix t,ElemType A[M][N]) { int i,j; t.rows=M;t.cols=N;t.nums=0; for (i=0;iM;i++) { for (j=0;jN;j++)

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档