数组和矩阵的压缩存储.pptVIP

  • 18
  • 0
  • 约7.76千字
  • 约 31页
  • 2016-06-07 发布于湖北
  • 举报
* 存储的数据根据目前的三元组表示法,不能够得到原有的矩阵,因为原矩阵的总行列数不知道。因此,在存储三元组的同时要把原矩阵的总行列数保存下来,原矩阵的总行列数常常放在三元组的第一个位置保存。 * 第四章 串、数组和广义表 ——数组与矩阵的存储方式 * 数组可以看作线性表的推广。数组作 为一种数据结构其特点是结构中的元素本 身可以是具有某种结构的数据,但属于同 一数据类型。比如:一维数组可以看作一 个线性表,二维数组可以看作“数据元素是 一维数组”的一维数组,三维数组可以看作 “数据元素是二维数组”的一维数组,依此类 推。 4.5 数组 * 数 数组是一个具有固定格式和数量的数据有序集,每一个数据元素有唯一的一组下标来标识,因此,在数组上不能做插入、删除数据元素的操作。通常在各种高级语言中数组一旦被定义,每一维的大小及上下界都不能改变。在数组中通常做下面两种操作: (1)取值操作:给定一组下标,读其对应的数据元素 (2)赋值操作:给定一组下标,存储或修改与其相对应的数据元素 4.5 数组 * 一维数组 一维数组的示例 * 一维数组的特点 连续存储的线性聚集(别名 向量) 除第一个元素外,其他每一个元素有一个且仅有一个直接前驱。 除最后一个元素外,其他每一个元素有一个且仅有一个直接后继。 * 二维数组的定义 a11 a12 …….. a1n a21 a22 …….. a2n am1 am2 …….. amn …………………. 数组中的每一个元素由一个值和一组下标来描述 二维数组 * a1 a11 a12 …….. a1n a2 a21 a22 …….. a2n am am1 am2 …….. amn …………………. ai=( ai1,ai2,……..,ain) ( 1=i=m )——行向量 数组是线性表的推广 二维数组的表示方法 * ?i=( ?1i , ?2i , …….. , ?mi ) ( 1=i=n )——列向量 注意:数组的运算主要是存取元素、修改相应的元素。 ?1 a11 a21 …… am1 ?2 a12 a22 …… am2 ?n a1n a2n …… amn …… …… …… …… …… 二维数组的表示方法 * 二维数组 三维数组 行向量 下标 i 页向量 下标 i 列向量 下标 j 行向量 下标 j 列向量 下标 k * (1)???按行优先顺序存放 (2)???按列优先顺序存放 数组的顺序存储结构 * amn …….. am2 am1 ………. a2n …….. a22 a21 a1n ……. a12 a11 a11 a12 …….. a1n a21 a22 …….. a2n am1 am2 …….. amn …………………. loc(aij)=loc(a11)+[(i-1)×n+(j-1)]×S S为每个元素的存储大小 ??按行优先顺序存放 * amn …….. a2n a1n ………. am2 …….. a22 a12 am1 ……. a21 a11 a11 a12 …….. a1n a21 a22 …….. a2n am1 am2 …….. amn …………………. loc(aij)=loc(a11)+[(j-1)×m+(i-1)]×S S为每个元素的大小 ??按列优先顺序存放 * 1、给定整型数组M[3][5], M按行优先次序存 储,起始地址M[0][0]的存储地址为1000,则 元素M[2][2]的地址为 。 A)1022

文档评论(0)

1亿VIP精品文档

相关文档