计算机专业数据结构试题答案

本文探讨了二维数组的行优先存储方式,通过实例解析了地址计算,介绍了线性表、堆栈和队列的区别,以及不同出栈序列的可能性。同时,详细分析了多项式乘法的时间复杂度。此外,还涉及搜索引擎评价指标,以及二叉树的中序遍历。最后,讨论了三对角矩阵的压缩存储方法及其元素定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、已知二维数组 A 按行优先方式存储,每个元素占用 1 个存储单元。若元素 A[0][0] 的存储地址是 100,A[3][3] 的存储地址是 220,则元素 A[5][5] 的存储地址是:B

A.295

B.300

C.301

D.306

解析:

首先分析题干信息,按行优先方法存储,二维数组的行、列下标都是从0开始,并且已知起始存储地址为100,假设二维数组有n行m列。

LOC(A[3][3])= LOC(A[0][0])+(3*m+4-1)*1=220,可以求出m=39

则LOC(A[5][5])= LOC(A[0][0])+(5*39+6-1)*1=300,选B

2、线性表、堆栈、队列的主要区别是什么?

A.线性表用指针,堆栈和队列用数组

B.堆栈和队列都是插入、删除受到约束的线性表

C.线性表和队列都可以用循环链表实现,但堆栈不能

D.堆栈和队列都不是线性结构,而线性表是

解析:

解析:根据定义可以很简单的选出第二个是正确的。

3、给定一个堆栈的入栈序列为{ 1, 2, ⋯, n },出栈序列为{ p1​, p2​, ⋯, pn​ }。如果p2​=n,则存在多少种不同的出栈序列?

A.n

B.n−1

C.2

D.1

解析:p2=n,即第二个出栈的数据元素是n,那么第一个出栈的数据元素则可以是{1,2,⋯,n-1}中的任何一个,所以存在的不同的出栈序列一种有n-1种。

4、采用多项式的非零项链式存储表示法,如果两个多项式的非零项分别为N1​和N2​个,最高项指数分别为M1​和M2​,则实现两个多项式相乘的时间复杂度是:

A.O(N1​×N2​)

B.O(M1​×M2​)

C.O(N1​+N2​)

D.O(M1​+M2​)

解析:要实现两个多项式的乘法,需要让一个多项式的每一项乘以另外一个多项式的每一项,因此这个题目的时间复杂度只跟非零项的个数有关,也就是跟N有关,与最高项的指数无关,也就是跟M无关。

5、在评价一个搜索引擎时,下列哪项不是我们关注的要点?

A.索引的速度

B.搜索的速度

C.界面的友好程度

D.搜索结果集的相关性

6、二叉树的中序遍历也可以循环地完成。给定循环中堆栈的操作序列如下(其中push为入栈,pop为出栈):

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

7、以下哪句是对的?

A.3和5是兄弟结点

B.1是5的父结点

C.6是根结点

D.以上全不对

解析:

8、有一个100阶的三对角矩阵M,其三对角元素mi,j​(1≤i≤100,1≤j≤100)按行优先次序压缩存入下标从0开始的一维数组N中。元素m30,30​在N中的下标是:

A.86

B.87

C.88

D.89

解析:

a[k]-->k=2i+j-2;   30*2+30-2 下标0开始所以-1最后为87

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值