数据结构之数组

来源:互联网 发布:淘宝看数据的插件 编辑:程序博客网 时间:2024/06/13 23:06

数组的考点:

1.二维数组元素地址计算;三维数组中元素个数的计算(选择题)

2.广义表的基本概念(会求表尾、表头,填空题)

3.矩阵的压缩存储(压缩存储的目的;对称矩阵压缩存储后的大小,填空题)


针对考点,一一击破。哈哈哈。


第一部分

首先,二维数组元素地址计算。

一个m行n列的二维数组中任一元素aij的内存单元地址:
  LOC(aij)=LOC(a00)+(i*n+j)*k    
                                (0≤i<m, 0≤j<n)

注:只要知道以下三要素便可随时求出任一元素的地址(意义:数组中的任一元素可随机存取) ①开始结点的存放地址(即基地址); ②维数和每维的上、下界; ③每个数组元素所占用的单元数

例题1:设数组a[0…60, 0…70]的基地址为2048,每个元素占2个存储单元,若以行序为主序顺序存储,则元素a[32,58]的存储地址为6708.

根据行优先公式 LOC(aij)=LOC(a00)+(i*n+j)*k  (0≤i<m,0≤j<n)
  得:LOC(a32,58)=2048+(32*71+58)*2=6708

例2:设数组a[6][7]的基地址为2000,每个元素占2个存储单元,若以行序为主序顺序存储,则元素a[5,6]的存储地址为

答:根据行优先公式 LOC(aij)=LOC(a00)+(i*n+j)*k  (0≤i<m,0≤j<n)
  得:LOC(a5,6)=2000+(5*7+6)*2=2082                        。


其次,三维数组中元素个数的计算:

不知道。。。。


第二部分

广义表的基本概念:广义表是由零个或多个原子或子表组成的有限序列,是线性表的推广

当广义表LS非空时,称第一个元素d1为LS的表头(Head),称其余元素组成的子表(d2,…,dn)是LS的表尾(Tail)

任何一个非空广义表    LS = ( 1, 2, …, n)
     均可分解为
           表头  Head(LS) = 1   和
           表尾  Tail(LS) = ( 2, …, n)     两部分。



第三部分 

压缩存储的目的:当矩阵的阶数较高,而且矩阵中的一些元素有特殊的性质时,可以采用节省空间的存储办法(压缩存储)

对称矩阵压缩存储后的大小:n2个元素可以压缩到n(n+1)/2个空间中


0 0