数据结构 习题 第五章 多维数组和广义表 (C语言描述)

最近在复习数据结构,所以想把平时上课做的习题做个总结,如果大家有遇到这方面的问题就可以参考一下了,废话不多说,直接开始吧。

1、单选题
稀疏矩阵一般的压缩存储方法有两种,即( D)
A. 二维数组和三维数组
B. 三元组表和散列
C. 散列和十字链表
D. 三元组表和十字链表

三元组表:将表示稀疏矩阵的非零元素的三元组表按行优先(或列优先)的顺序(跳过零元素),则得到一个其结点均是三元组的线性表,此线性表的顺序存储结构称为三元组表。
三元组表是稀疏矩阵的一种顺序存储结构。
(当非零元素的位置或个数经常发生变化时,三元组表不适合做稀疏矩阵的存储结构)
此时可采用链表做为存储结构更为恰当,如:十字链表

2、判断题
线性表可以看成是广义表的特例,如果广义表中的每个元素都是原子,则广义表便成为线性表.

正确
广义表(Lists):又称列表,是线性表的推广
线性表的元素仅限于原子项,原子是作为结构上不可分割的成分,它可以是一个数或一个结构,若放松对表元素的这种限制,容许它们具有其自身独立的类型结构,这就产生了广义表。
为了区分原子和广义表,书写时用大写字母表示广义表,小写字母表示原子。
一个表的“深度”是指表展开后所含括号的层数。

3、判断题
广义表是线性表的推广,是一类线性数据结构。

错误
广义表不仅是线性表的推广,也是树的推广。

4、填空题
二维数组A[10][20]采用行序为主方式存储,每一个元素点一个存储单元,且A[0][0]的存储地址是200,则A[6][12]的地址是▁▁▁。

答案(填空1):
332

数组中任一元素A[i][j]的存储位置可用下列公式计算:
LOC( A[i][j] ) = LOC ( A[0][0] ) + ( i×n+j ) × L
这是因为数组元素 A[i][j] 的前面有 i 行,每一行的元素个数为 n,在第 i 行中 A[i][j] 的前面还有 j 个数组元素。L 仍然是每个数据元素所占存储单元的个数。
LOC( A[6][12] )= LOC ( A[0][0] ) + (6*20+12)*1 = 200 + 132 = 332

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

6、填空题
广义表(a,(a,b),d,e,((i,j),k))的长度是▁▁▁,深度是▁▁▁。
答案(

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值