复习题集1-线性结构-错题

一、单选题

1,在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是()

A,O(1)
B,O(n)
C,O(n的平方)
D,O(nlogn)

有序顺序表,可以用二分查找,复杂度为o(lgn)
而本题中为有序单链表,需要遍历找到插入的位置,复杂度为O(n)

2,表达式a*(b+c)-d的后缀表达式是()

A,abcd * + -
B,abc+ * d -
C,abc * + d -
D,- + * abcd

一个中缀式到其他式子的转换方法~~
这里我给出一个中缀表达式~
a+bc-(d+e)
第一步:按照运算符的优先级对所有的运算单位加括号~
式子变成拉:((a+(b
c))-(d+e))
第二步:转换前缀与后缀表达式
前缀:把运算符号移动到对应的括号前面
则变成拉:-( +(a (bc)) +(de))
把括号去掉:-+a
bc+de 前缀式子出现
后缀:把运算符号移动到对应的括号后面
则变成拉:((a(bc)* )+ (de)+ )-
把括号去掉:abc*+de± 后缀式子出现
发现没有,前缀式,后缀式是不需要用括号来进行优先级的确定的。
如果你习惯拉他的运算方法。计算的时候也就是从两个操作数的前面
或者后面找运算符。而不是中间找,那么也就直接可以口算拉,故答案为B
另一种方法
在这里插入图片描述

3,算法的时间复杂度取决于()

A,问题的规模
B,待处理数据的状态
C,计算机的配置
D, A和B

4,下面代码段的时间复杂度是()。

x=n; //n>1
y=0;
while( x≥(y+1)*(y+1) )
    y++;

A,O(1)
B,O(n1/2)
C,O(n)
D,O(log2n)

此题x>=(y+1)(y+1)可转换为
n>=(y+1)
(y+1)即有n^0.5>=y+1
所以y<=n^0.5-1
因此时间复杂度为 o(n^0.5)

扫描二维码关注公众号,回复: 11349721 查看本文章

5,一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出的第i(1<=i<=n)个元素是()。

A,不确定
B,n-i
C,i
D,n-i+1

因为输出的第一个数是n,则此时,1,2,3…n-1已入栈,第二个输出的是n-1,第三个输出的是n-2,以此类推,第i个输出的是n-i+1.

二、判断题

1,数组可看成线性结构的一种推广,因此与线性表一样,可以对它进行插入,删除等操作。

A,对
B,错

怎么说呢,本人认为这道题目,没有问题。
这道题错就错在,“因此与线性表一样,可以对它进行插入,删除等操作”,注意,数组的插入、删除操作,和线性表是不一样的,虽然数组可以表示线性表,但数组终究不是线性表。
建议大家去看两个词条:
线性表和线性结构,
从根本上理解理解这两个概念。

2,循环队列通常用指针来实现队列的头尾相接。

A,对
B,错

循环队列其实就是个数组,是靠队头、队尾、下标来实现头尾相接 如队列A有5个位置,当到达A【4】时,判断到达队尾了,下标变到队头0,即可回到A【0】——队列头部。循环队列应该注意判断队列是否为空,是否满

3,数据元素是数据的最小单位。( )

A, 对
B,错

数据元素:是组成数据的、有一定意义的基本单位。
数据项:一个数据可以由若干个数据项组成。数据项是数据不可分割的最小单位。

4,顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好

A,对
B,错

顺序存储插入删除效率低是因为插入删除是都需要移动大量的元素
然而顺序存储的优点是随机访问某个位置的元素效率高
链式存储插入删除效率高,但是随机访问某个位置的元素效率低,需要从头开始查找
两种存储各有优缺点,看应用情景选择使用

三、综合应用题

1,数据结构是一门研究什么内容的学科?

我的答案:
数据结构是一门研究非数值计算的程序设计中计算机的操作对象以及它们之间的关系和操作的学科.

2,简述线性表采用顺序存储方式和链式存储方式的优缺点。

我的答案:
随机存取
顺序存取

3,评价各种不同数据结构的标准是什么?

我的答案:
正确性
可读性
健壮性
算法的效率

猜你喜欢

转载自blog.csdn.net/weixin_45899700/article/details/106893174