Loading

数据结构与算法题型——chapter 2:稀疏矩阵&内存计算&广义表

数据结构与算法题型——chapter 2:稀疏矩阵&内存计算&广义表

pta错题集

稀疏矩阵一般的压缩存储方法是三元组十字链表

稀疏矩阵:矩阵压缩之后在另一个数组中的下标表示

要掌握三个方法:带入排除法、递推法、计算法

带入排除就是把特殊情况带入选项中验证是否满足,从而排除选项之后得到正确结果

递推法:将数据列举出来,然后发现规律,从而得到一般表达式,然后与选项比对

计算法:一定要熟悉等差数列,从数列的角度找到计算方法然后得出公式、计算结果,最后与选项比对

下面是题:

在这里插入图片描述

就是求等差数列,因为是下三角矩阵原因 所以有a=1,d=1,n=n;An=(n*n+n)/2

由题知道A起始地址是0,所以n=i+1带入得An=(i*i+3i+2)/2,

根据B起始地址为0,所以An=(ii+3i+2)/2 -1 = (ii+3i)/2 =(i+3)x(i/2)

此题选A

B

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

由于是对称矩阵,因此压缩存储可以认为只要存储下三角矩阵。

(1,1) 1

(2,1) (2,2) 2

(3,1) (3,2) (3,3) 3

(4,1) (4,2) (4,3) (4,4) 4

(5,1) (5,2) (5,3) (5,4) (5,5) 5

(6,1) (6,2) (6,3) (6,4) (6,5) (6,6) 6

(7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) 7

(8,1) (8,2) (8,3) (8,4) (8,5) 5

1+2+3+4+5+6+7+5=33

答案选B

**解释:设数组从内存首地址M开始顺序存放,若数组按行先存储,元素A[8,5]的起始地址为:M+[(8-0)*10+(5-1)]*1=M+84;若数组按列先存储,易计算出元素A[3,10]的起始地址为:M+[(10-1)9+(3-0)]1=M+84。故选B。

内存计算:

在这里插入图片描述

在这里插入图片描述

广义表:

只有第一个元素是头,头可以是一个单原子,也可以是一个子表;表尾为去除表头之外其他元素构成的表,表尾一定是一个广义表。

例如:((a,b,c)),表头是(a,b,c),表尾是空表()。

即如果有多个元素,那么只有第一个元素是头,因为“头只有一个,其他都是身子,身子相对头来说就是尾
在这里插入图片描述

在这里插入图片描述

解释:Tail(A)=(b,(c,d),(e,(f,g)));Tail(Tail(A))=( (c,d),(e,(f,g))); Head(Tail(Tail(A)))= (c,d);Tail(Head(Tail(Tail(A))))=(d);Head(Tail(Head(Tail(Tail(A)))))=d。

(15)设广义表L=((a,b,c)),则L的长度和深度分别为( )。

A.1和1 B.1和3 C.1和2 D.2和3

答案:C

解释:广义表的深度是指广义表中展开后所含括号的层数,广义表的长度是指广义表中所含元素的个数。根据定义易知L的长度为1,深度为2。

posted @ 2021-11-28 00:19  EEvinci  阅读(13)  评论(0编辑  收藏  举报