数据结构与算法题型——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。
作者:Evinci
出处:https://www.cnblogs.com/evinci/p/17123999.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律