数据结构c语言版二维数组的两种存储方式,数据结构习题之多维数组和广义表(示例代码)...

第五章 多维数组和广义表

一、基本要求、重点、难点

本章目的是介绍多维数组的逻辑结构特征及其存储方式。特殊矩阵和稀疏矩阵的压缩存储方法。本章重点是熟悉多维数组的存储方式、矩阵的压缩存储方式,难点是稀疏矩阵的压缩存储方示下实现的算法。

二、考核目标、考核要求

1.多维数组,要求达到“理解”层次

1.1多维数组的逻辑特征。

1.2多维数组的顺序存储结构及地址计算方式。

1.3数组是一种随机存取结构的原因。

2.矩阵的压缩存储,要求达到“理解”层次

2.1特殊矩阵和稀疏矩阵的概念。

2.2特殊矩阵的压缩存储时的下标变换方法。

2.3稀疏矩阵的三元组表表示方法及有关算法。

三、练习题

1.单项选择题

1.1二维数组M的元素是4个字符(每一个字符占一个存储单元)组成的串,行下标i的范围是从0到7,列下标j的范围从0到9。则存放M须要存储单元数为(   D  )

A) 360               B)480                  C) 240                  D) 320

凝视:由题目知:8*10*4=320。

1.2 N是一个5×8的二维数组,当N按行优先方式存储时,表示该数组的第10个元素的是( C )

A) N[2][2]         B)N[2][1]              C) N[1][1]             D)N[1][2]

凝视:五行八列的数组的第十个的元素为N[1][1]元素为第二行第二列的元素。

1.3 二维数组M[i][j]的元素是4个字符(每一个字符占一个存储单元)组成的串,行下标i的范围是从0到4,列下标j的范围从0到5,M按行存储时元素M[3][5]的起始地址与M按列存储时地址地址同样的元素是( B )

A) M[2][4]        B)M[3][4]             C) M[3][5]            D)M[4][4]

凝视:由题知按行优先的存储地址为:4*6*4=96。

按列优先存储的同样素地址元素为:M[3][4]。

1.4 稀疏矩阵一般的压缩存储方法有两种,即( D )

A)二维数组和三维数组               B)三元组和散列

C)散列和十字链表                      D)三元组和十字链表

1.5 常对数组进行的两种基本操作是(C  )

A)建立和删除                             B)索引和改动

C)查找和改动                             D)查找和索引

1.6 设矩阵A是一个对称矩阵,为了节省存储空间。将其下三角部分(见图5.1)按行序存放在一维数组SA[0..n(n+1)/2]中,对任一下三角部分元素aij(i≥j)。在一维数组SA的下标位置k的值是(B )

A)j*(j-1)/2+i-1                             B)i*(i+1)/2+j

C)j*(j+1)/2+i-1                           D)i*(i-1)/2+j

凝视:对于对称矩阵来说,下标位置的值为:i*(i+1)/2+j。

d131523bcc637a2e4f374e452d6ed435.png

2.填空

2.1已知二维数组A[m][n]採用行序为主方式存储。每一个元素占k个存储单元,而且第一个元素的存储地址是LOC(A[0][0]),则A[i][j]的地址是[LOC[(A[0][0])+(n*i+j)k]]。

2.2 二维数组A[10][20]採用行序为主方式存储,每一个元素点一个存储单元,且A[0][0]的存储地址是200,则A[6][12]的地址是[332]。

凝视:利用公式计算地址为:200+6*20+12=332

2.3 有一个10阶对称矩阵A,採用压缩存储方式(以行序为主存储,且A[0][0]=1)。则A[8][5]的地址是[42]。

凝视:因为是对称矩阵,利用地址计算公式为:1+8*(8+1)/2+5=42

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值