数据结构复习4-数组

数组可以看成线性表的推广,其特点是结构中的元素本身可以是具有某种结构的数据,但属于同一数据类型

在扩展Basic、Pascal、Java和C语言中用的都是以行序为主序的存储结果,而在FORTRAN语言中,用的是以序列为主序的存储结构

特殊矩阵的压缩存储

1、对称矩阵

n阶对称矩阵满足:a_{ij}=a_{ji}        1<=i,j<=n

可以将n^{2}个元压缩存储在n(n+1)/2个元的空间中

可以以/行序为主序存储其下三角(包括对角线中的元)

若令k为数组下表         k=i(i-1)/2+j-1    (i>=j 按行 下三角)             (等差数列求和)

                       或         k=j(j-1)/2+i-1    (i<j 按列 上三角)

2、三角矩阵

上三角矩阵:矩阵下三角(不包括对角线)中元素均为常数c或0的n阶矩

        k=(i-1)(2n-i+2)/2+(j-i)   i<=j

        第i行个数:n-i+1 

        第i-1行:n-(i-1)+1=n-i+2

下三角矩阵:矩阵上三角(不包括对角线)中元素均为常数c或0的n阶矩

3、多对角矩阵

非0元都集中在以对角线为中心的带状区域中

三对角矩阵:

        需3n-2

        k=2*i+j-3

4、稀疏矩阵

        行列值构成三元组(i,j,v)来存,最后还存总行数,总列数,总个数

练习

1、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为

        33

2、设有数组A[i,j],数组的每个元素长度为3字节,i的值为1 到8 ,j的值为1 到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为()

        BA+180

3、对于 C 语言的二维数组 int A[m][n],每个元素占 2 个字节,数组中元素 a[i,j]的存储位置可由( )式确定。

        Loc[i, j]=Loc[0, 0]+ (n×i+j)×2

4、数组 A[0..5, 0..6] 的每个元素占 5 个字节,将其按列优先次序存储在起始地址为 1000 的内存单元中,则元素 A[5, 5] 的地址是( )。

        1175

5、数组 A[0..6, 0..5] 的每个元素占 5 个字节,将其按列优先次序存储在起始地址为 1000 的内存单元中,则元素 A[5, 5] 的地址是( )。

        1200

6、数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放的存储器内,该数组按列存放,元素A[5][8]的起始地址为( )。

        BA+180

7、在一个二维数组A中,假设每个数组元素的长度为3个存储单元,行下标为0~8,列下标为0~9,从首地址SA开始连续存放。在这种情况下,元素A[8][5]的起始地址为( )

        SA+255

8、有一个n×n的对称矩阵A,将其下三角部分按行存放在一维数组B中,而A[0][0]存放于B[0]中,则第i+1行的对角元素A[i][i]存放于B中()

        (i+3)i/2        i(i+1)/2+i=(i+3)i/2 

9、设有一个12×12的对称矩阵M,将其上三角部分的元素mi,j(1≤i≤j≤12)按行优先存入C语言的一维数组N中,元素m6,6在N中的下标是( )

        50

10、将一个10×10对称矩阵M的上三角部分的元素mi,j(1≤i≤j≤10)按列优先存入C语言的一维数组N中,元素m7,2在N中下标是( )

        22

11、有一个100阶的三对角矩阵M,其元素mi,j(1≤i,j≤100)按行优先依次压缩存入标从0开始的一维数组中N。元素m30,30在N中的下标是( )  

        87

12、将三对角矩阵A[1...100][1...100]按行优先存入一维数组B[1...298]中,A中元素A[66][65]在数组B中的位置是( )

        195

13、对n阶对称矩阵压缩存储时,需要表长为( )的顺序表。        

        n(n+1)/2

14、若将n阶上三角矩阵A按列优先级压缩存放在一维数组 B[1...n(n+1)/2+1]中,则存放到B[k]中的非零元素ai,j(1≤i,j≤n)的下标i、j与k的对应关系是( )

        j(j-1)/2+i

15、若将n阶下三角矩阵A按列优先顺序压缩存放在一维数组 B[1..n(n+1)/2+1]中,则存放到B[k]中的非零元素ai,j(1≤i,j≤n)的下标j与k的对应关系是( )

        (j-1)(2n-j+2)/2+i-j+1

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值