数据结构pta题目

1-1

数据结构概念包括数据之间的逻辑结构数据在计算机中的存储方式数据的运算三个方面。

1-2

NlogN^​2​​和NlogN具有相同的增长速度。

NlogN^2=2NlogN

Ο(1)<Ο(logn)<Ο(n)<Ο(nlogn)<Ο(n²)<Ο(n³)<…<Ο(2^n)<Ο(n!)<O(n^n)

1-4

所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。

F

循环队列指的是用数组表示的队列,利用求余数运算使得头尾相接。

循环队列本身是一种顺序存储结构,而循环链表是一种链式存储结构。两者之间是平级关系。

线性链表是线性表的链式存储结构,包括单链表,双链表,循环链表等。

队列的顺序存储结构一般采用循环队列的形式。

1-5

某二叉树的后序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无左孩子。

F

中序遍历:左 根 右

先序遍历:根 左 右

后序遍历:左 右 根

所以:一定都无右孩子

1-6

在一棵二叉搜索树上查找63,序列39、101、25、80、70、59、63是一种可能的查找时的结点值比较序列。

F

从前三个数据看该查找均不为三种遍历中的一种:先序(根左右)39 25 101;中序(左根右)25 39 101;后序(左右根)25 101 39

二叉搜索树的性质:非空左子树的所有键值小于其根结点的键值;右子树的大于根结点的键值

1-7

将一棵完全二叉树存于数组中(根结点的下标为1)。则下标为23和24的两个结点是兄弟。

F

完全二叉树第n行的孩子结点个数为2^(n-1)

所以可知x=(1+2^(n-1))*n/2,23,24在第5行,从16-32:22-23,24-25

1-8

对于顺序存储的长度为N的线性表访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)

增加结点需要先让部分元素后移后才能插入

1-9

将N个数据按照从小到大顺序组织存放在一个单向链表中。如果采用二分查找,那么查找的平均时间复杂度是O(logN)。

F

二分查找关键是,迅速当前数据的中间值,拿中间值跟需要查找的目的key比较,根据比较的结果,淘汰一半的候选元素。

单向链表不可二分查找,只有按顺序存放的数组/多级链表才可以,这是由链表的特性决定的。链表是很典型的链式存储结构,因为数据在链表中的位置是不确定的,所以只能通过从头到尾的顺序检索得到,因此链表的每一个节点的地址不能在O(1)的时间复杂度内获得。
   这和数组有本质的不同。数组中的元素是通过下标来确定的,只要你知道了下标,就可以直接存储整个元素, 比如a[5],是直接的。链表没有这个,所以,折半查找只能在数组上进行。

但是二分查找的时间复杂度是为O(logN)

1-10

通过对堆栈S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。输出的序列为:123。

F

321

2-1

斐波那契数列F​N​​的定义为:F​0​​=0, F​1​​=1, F​N​​=F​N−1​​+F​N−2​​, N=2, 3, …。用递归函数计算F​N​​的空间复杂度是:

A.O(logN)

B.O(N)

C.O(F​N​​)

D.O(N!)

B  调用了N层空间复杂度

只有二分搜索,大多一般时,才会使O(logN)

2-2

对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度为:

A.O(1), O(1)

B.O(1), O(N)

C.O(N), O(1)

D.O(N), O(N)

B

2-3

设栈S和队列Q的初始状态均为空,元素{1, 2, 3, 4, 5, 6, 7}依次进入栈S。若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是{2, 5, 6, 4, 7, 3, 1},则栈S的容量至少是:

A.1

B.2

  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值