数据结构判断题

本文揭示了二分查找在单向链表中的适用误区,指出链表结构限制了二分查找的运用,并深入讨论了顺序存储与随机存取的区别,以及单链表访问元素的时间依赖性。此外,还澄清了头指针的含义和循环队列的特性,以及关于队列操作、二叉树结构和节点关系的常见误解。
摘要由CSDN通过智能技术生成

1.将N个数据按照从小到大顺序组织存放在一个单向链表中。如果采用二分查找,那么查找的平均时间复杂度是O(logN)。
F
解析:
二分查找的平均复杂度是O(logN)没有错,一看到这个就跳坑了。然后知道陷阱来了!按顺序存放在单项链表中。二分查找是不可以用链表存储的
这是由链表的特性决定的。链表是很典型的顺序存取结构,数据在链表中的位置只能通过从头到尾的顺序检索得到,即使是有序的,要操作其中的某个数据也必须从头开始
这和数组有本质的不同。数组中的元素是通过下标来确定的,只要你知道了下标,就可以直接存储整个元素,比如a[5],是直接的。链表没有这个,所以,折半查找只能在数组上进行

2. 在单链表中,要访问某个结点,只要知道该结点的指针即可。因此,单链表是一种随机存取结构。
F
解析:
线性表分(顺序存储和链式存储)
顺序存储即数组,我们使用数组的时候申请的是连续的内存空间可以直接读取的,a[24],a[25]
链式存储即链表,链表中单个节点的内存地址不是连续的,而是散列在计算机中,通过next指针访问下一个节点,所以所必须遍历链表才能读取数据!
总结:
顺序表:顺序存储,随机读取
链式:随机存储,顺序读取(必须遍历)

3. 取线性表的第i个元素的时间同i的大小有关。
F
解析:
线性表分顺序表链表
顺序表最主要的特点是随机访问,即通过首地址和元素序号可以在O(1)的时间内找到指定的元素
线性表因为是按序号直接取值,所以没有关系,但如果是链式存储结构就有关系

4.在具有头结点的链式存储结构中,头指针指向链表中的第一个元素结点。F
解析:
头指针 指示链表中第一个结点(即第一个数据元素的存储映像)的存储位置。同时,由于最后一个数据元素没有直接后继,则线性链表中最后一个结点的指针为“空”(NULL)。
有时在单链表的第一个结点之前附设一个结点,称之为头结点 。 头结点的数据域可以不存储任何信息,也可以存储如线性表长度等类的附加信息,头结点的指针域存储指向第一个结点的指针(即第一个元素结点的存储位置)。单链表的头指针指向头结点。若线性表为空,则头结点的指针域为“空”。

有头结点的链表结构中,头指针指向链表的头结点,因为单链表不具有回溯性,即通过指针指向的节点不能找到该节点的前一个节点,只能找到后面的节点。

目的是便于链表的操作;比如删除第一个数据节点时,让头结点的指针域指向第二个数据节点即可。如果头指针指向的是第一个数据节点,那么通过此指针不能找到前一个节点,也就不能实现删除。

5.在一个设有头指针和尾指针的单链表中,执行删除该单链表中最后一个元素的操作与链表的长度无关F
解析:
必须要遍历到倒数第二个元素把它设为尾部(链表不是双向链表)

6.在用数组表示的循环队列中,front值一定小于等于rear值。F
解析:
rear在对max取余之后会从零开始,但这时front并不是零。所以会出现front>rear,( >,=,<三种情况都有可能出现)
(可以这样理解:因为是循环的,所以可能rear由大变小,画个图就知道了。)

7.若采用“队首指针和队尾指针的值相等”作为环形队列为空的标志,则在设置一个空队时只需将队首指针和队尾指针赋同一个值,不管什么值都可以。T
解析:
判断队满的方式一:牺牲一个存储的单元来区分空队、满队

约定:当队头指针在队尾指针的下一个位置时,队满
队空:q.frontq.rear
队满:(q.rear+1)%MAXSIZE
q.front
队列中的元素个数:(q.rear-q.front+MAXSIZE)%MAXSIZE

8.存在一棵总共有2016个结点的二叉树,其中有16个结点只有一个孩子F
解析:
没确定是什么类型的二叉树
二叉树的类型:
满二叉树:除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树。
完全二叉树:一棵二叉树至多只有最下面的一层上的结点的度数可以小于2,并且最下层上的结点都集中在该层最左边的若干位置上,则此二叉树成为完全二叉树
平衡二叉树:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树

9.具有10个叶结点的二叉树中,有9个度为2的结点。T
解析:
度为0的节点称为叶节点
叶结点个数=度为2的结点个数+1

一棵深度为k,且有(2^k) -1个结点的二叉树。这种树的特点是每一层上的结点数都是最大结点数(2)。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且或者最后一层是满的,或者是在右边缺少连续若干结点,则此二叉树为完全二叉树

具有n个节点的完全二叉树的深度为floor(log2n)+1。深度为k的完全二叉树,至少有2k-1个叶子节点,至多有2k-1个节点

10.在含有n个结点的树中,边数只能是n-1条。T
解析:
树中是不存在环的,对于有N个节点的树,必定是N-1条边 。

11.完全二叉树中,若一个结点没有左孩子,则它必是树叶。T
解析:
根据第9题中完全二叉树的定义可知:
完全二叉树如果没有左结点,则一定没有右结点,即没有左孩子,它就一定是树叶

12.一棵有n个结点的二叉树,从上至下,从左到右用自然数依次编号,则编号为i的结点的左儿子的编号为2i(2i<n),右儿子的编号是2i+1(2i+1<n)。F

13.一棵有124个结点的完全二叉树,其叶结点个数是确定的。T
解析:
一棵124个叶结点的完全二叉树,假设n0为叶子结点数,n1为度为1结点数,n2为度为2结点数,则有总结点数为n0+n1+n2;而n2=n0-1=123;且完全二叉树中度为1的结点只能为一个或0个,所以总结点数为124+1+123=248个

14.非空的二叉树一定满足:某结点若有左孩子,则其中序前驱一定没有右孩子T
解析:
所谓中序遍历就是左子树、根、右子树 设某结点为A,它的中序前驱是B 按照正常中序遍历的次序中,如果B有右子树,则B遍历完了后会遍历其右子树,而不是马上遍历A,但是现在是B遍历完了就是A,因此: 某结点如果有左孩子,则其中序前驱一定没有右孩子

15.在有N个元素的最大堆中,随机访问任意键值的操作可以在O(logN)时间完成F
解析:
堆的左右孩子没有固定的顺序,无法像平衡二叉树那样顺着找下去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值