25版王道数据结构课后习题详细分析 第三章栈、队列和数组 3.4 数组和特殊矩阵

单项选择题

————————————————————

————————————————————

解析:特殊矩阵中含有很多相同元素或零元素,所以可采用压缩存储,以节省存储空间。

正确答案:D

————————————————————

————————————————————

解析:只需存储其上三角或下三角部分(含对角线),元素个数为n+(n-1)+…+ 1 = n(n+ 1)/2。

正确答案:C

————————————————————

————————————————————

解析:此题要注意3个细节:矩阵的最小下标为0;数组下标也是从0开始的;矩阵按行优先存在数组中。注意到此三点,答案不难得到为A。此外,本类题建议采用特殊值代入法求解,例如,A[1][1]对应的下标应为2,代入后只有A满足条件。
技巧:对于特殊三角矩阵压缩存储的题,心中应有“平移”搬动的思想,并结合草图,这样会比较形象,在计算时再注意矩阵和数组的起始下标,就不容易出错。

正确答案:A

————————————————————

————————————————————

解析:SA+(8×10+5)×3 =SA+255,所以选D。

正确答案:D

————————————————————

————————————————————

解析:本题未直接给出数组A的行数和列数,因此需要根据题目中的信息来推理。因为该二维数组按行优先存储,且A[3][3]的存储地址为446,所以A[3][1]的存储地址为444,又A[1][1]的存储地址为420,显然A[1][1]和A[3][1]正好相差2行,所以该矩阵的列数为12。而A[5][3]和A[3][3]正好相差2行,A[5][5]和A[5][3]又相差2个元素,所以A[5][5]的存储地址是446+24+2=472。

正确答案:A

————————————————————

————————————————————

解析:对于三对角矩阵,将A[ 1...n ] [ 1...n ]压缩至B[...3n-2]时, ax,j与b,的对应关系为k=2i+j-2。则A中的元素A[66] [65]在数组B中的位置k为2×66+65-2=195.

正确答案:B

————————————————————

————————————————————

解析:按列优先存储,所以元素ai,j前面有j-1列,共有1+2+3+…+j-1=j(j-1)/2个元素,元素ai,j在第j列上是第i个元素,数组B的下标是从1开始,因此k=八j-1)/2+i。

正确答案:

————————————————————

————————————————————

解析:按列优先存储,所以元素ai,j之前有j-1列,共有n+(n-1)+…+(n-j+2)=(j-1)(2n-j+2)/2个元素,元素ay是第j列上第i-j+1个元素,数组B的下标从1开始,k=(j-1)(2n-j+2)2+i-j+1。

正确答案:B

————————————————————

————————————————————

解析:稀疏矩阵通常采用三元组来压缩存储,存储矩阵元素的行列下标和相应的值,因此不能根据矩阵元素的行列下标快速定位矩阵元素,失去了随机存取的特性。

正确答案:B

————————————————————

————————————————————

解析:在三对角矩阵中,第1行和最后1行只有2个非零元,其余各行均有3个非零元。稀疏矩阵的特点是矩阵中非零元的个数较少。

正确答案:D

————————————————————

————————————————————

解析:元素m30,30在数组N中的下标是2+28×3+2-1=87。

正确答案:B

————————————————————

————————————————————

解析:三元组表的结点存储了行(row)、列(col)、值(value)三种信息,是主要用来存储稀疏矩阵的一种数据结构。十字链表将行单链表和列单链表结合起来存储稀疏矩阵。邻接矩阵空间复杂度达o(n),不适合于存储稀疏矩阵。二叉链表又名左孩子右兄弟表示法。可用于表示树或森林。

正确答案:A

————————————————————

————————————————————

解析:在C语言中,数组N的下标从0开始。第一个元素m,,对应存入n,矩阵M的第一行有12个元素,第二行有11 个,第三行有10个,第四行有9个,第五行有8个,所以m6,6是第12+11+10+9+8+1=51个元素,下标应为50。

正确答案:B

————————————————————

————————————————————

解析:m7,2在数组N中的下标为22。

正确答案:C

————————————————————

————————————————————

解析:二维数组A按行优先存储,每个元素占用1个存储单元,由A[0][0]和A[3][3]的存储地址可知A[3][3]是二维数组A中的第121个元素,假设二维数组A的每行有n个元素,则n×3+4=121,求得n=39,所以元素A[5][5]的存储地址为100+ 39x5+6-1=300。

正确答案:B

————————————————————

————————————————————

解析:用三元组表存储结构存储稀疏矩阵M时,每个非零元素都由三元组(行标、列标、关键字值)组成。但是,仅通过三元组表中的元素无法判断稀疏矩阵M的大小,因此还要保存M的行数和列数。此外,还可以保存M的非零元素个数。

正确答案:A

  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
王道数据结构课后习题中,有一个关于排序的题目。根据引用的思路,我们可以使用排序后查找的方法来解决这个问题。具体步骤如下: 1. 首先,对给定的数据进行排序,可以使用快速排序、归并排序等常见的排序算法进行排序。排序的时间复杂度为O(log2n)。 2. 排序完成后,我们可以使用二分查找的方法来查找特定元素。如果目标元素存在于排序后的数组中,可以通过遍历判断其是否存在。时间复杂度为O(log2n)。 所以,根据引用的思路,我们可以使用排序后查找的方法来解决王道数据结构课后习题中排序的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [leetcode答案-kaoyan-data-structure:21考研,用的去年的书《2020王道数据结构》](https://download.csdn.net/download/weixin_38733733/19920375)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [王道数据结构课后题编程(顺序表)](https://blog.csdn.net/RHJlife/article/details/90450834)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值