树——牛客网刷题第四波

牛客有争议的题目是越来越多了

各有各的理

什么时候能出个官方答案啊

1.下面关于二叉搜索树正确的说法包括C

A. 待删除节点有左子树和右子树时,只能使用左子树的最大值节点替换待删除节点。

B. 给定一棵二叉搜索树的前序和后序遍率历结果,无法确定这棵二叉搜索树。

C. 给定一棵二叉搜索树,根据节点值大小排序所需时间复杂度是线性的。

D. 给定一棵二叉搜索树,可以在线性时间复杂度内转化为平衡二叉搜索树。

解析:A.可以用右子树最小结点来替代 错误

           B.对于搜索树来说,只要知道前序遍历就能还原了,第一个是根结点,之后的连续K个小于根节点的为左子树,后面的都是右子树,然后递归; 错误

           C.正确, 中序遍历就可以了

           D.如果允许额外的存储空间,可以先按照C生成一个排好序的数组,然后不断的找mid节点作为根来构造平衡树就是线性的,如果不允许额外空间只能靠旋转的话无法用线性时间。因为题目是单选,只能理解为不允许额外的存储空间了,

所以只能选C

2.在中序线索二叉树中,每一非空的线索均指向其祖先结点(A)

A. 对

B. 错

解析:
其实可以理解成任何一个节点都有两个指针域,如果有左右孩子那这个指针域就是空的,因为左前驱右后继,孩子和线索只能二选一,有左孩子就不能再指向前驱了,有右孩子就不能指向后继了,这样的话任何一个中序非空的的线索只能指向祖先,或者称之为父节点或者爷爷节点,因为“左根右”,兄弟之间是指不到的,中间隔了个老爹。

3.一般来说,若深度为k的n个结点的二叉树只有最小路径长度,那么从根结点到第k-1层具有的最多结点数为2k-1 -1,余下的n-2k-1 +1个结点在第k层的任一位置上(A)

A. 对

B. 错

解析:一个二叉树只有最小路径,指它类似于完全二叉树,只有最后一层可能缺子节点。如果还有一层,那么中路径就会大于最小路径。

每层为2^(k-1)个结点,前k层最多有(2^k)-1个节点,n应该大于(2^k) - 1 -  2^(k-1),小等于(2^k)-1。

此题比较复杂的是它提出了前k - 1层的数目,感觉太复杂时,可以用1,2,4,8这个数列代入计算一下。

4.用邻接矩阵存储有n个结点(0,1,...,n)和e条边的有向图(0≤e≤n(n-1))。在邻接矩阵中删除结点i(0≤i≤n-1)的时间复杂度是(B)

A. O(1)

B. O(n)

C. O(e)

D. O(n+e)

解析:邻接矩阵用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间关系(边或弧)的数据。

删除一个节点,需要对比所有元素,所以是n。

树——牛客网刷题第四波_第1张图片

5.已知一个二叉树的后序遍历的结果为 AEFDHZMG, 那么它的中序遍历可能为(B)前序遍历可能为(D)

A. ADEFHMGZ

B. ADEFGHMZ

C. GDAEFMHZ

D. GDAFEMHZ

解析:

树——牛客网刷题第四波_第2张图片

树结构如图,思路为:

寻找共同项,分别对比AB和CD

得到大致结构——

前序遍历:GDA _ _ MHZ

中序遍历:ADEF _ _ _ Z

后序遍历:AEFDHZMG

然后画个图往里填空就行

6.在二叉树结点的前序序列、中序序列和后序序列中,所有叶结点的先后顺序(B)

A. 都不相同

B. 完全相同

C. 前序和中序相同,而与后序不同

D. 中序和后序相同,而与前序不同

解析:因为根据三个遍历的次序和特点:前序是根左右、中序是左根右、后序是左右根,因此相对次序发生变化的都是子树的根,也就是分支结点(或者说非叶子结点,度数>0)。叶结点的先后顺序是不变的。

7.求最小生成树的普里姆(Prim)算法中边上的权可正可负。 (A)---有争议

A. 正确

B. 错误

解析:普里姆算法是允许负数的。只不过严版数据结构以及很多权威教材都是一个辅助数组既充当访问标记数组又充当边的权值数组,并且多数取<0的数作为标记,如:-1,并且大多数看到的图好像权值都是正数的(难道这有什么现实意义?)。总之,就算法思想而言,是允许负数的,但问到一样的问题,答:不允许负数。

8.线索二叉树是一种(A/C)结构   ---有争议

A. 逻辑

B. 逻辑和存储

C. 物理

D. 线性

解析:

逻辑结构:集合、线性、树形、图形

物理结构:顺序、链式

二叉树是一种逻辑结构,但线索二叉树是加上线索后的链表结构,也就是说,它是二叉树在计算机内部的一种存储结构,所以是一种物理结构。

9.在数据结构中,以下不适合用树来表示的有(AD

A. 元素之前无联系的数据

B. 有序数据元素

C. 元素之间具有分支层次关系的数据

D. 无序数据元素

解析:无联系、无序的数据没有必要使用指针相连接,不适合用树表示

有序数据用树表示可以从数的上下关系看出顺序

具有分支层次关系的数据用树表示可以用树的层序来表示

10.深度为k具有n个结点的完全二叉树,其编号最小的叶结点序号为[2^(k-2) ]+1(B)

A. 对

B. 错

解析:正确答案是[n/2]+1(下取整)。因为叶子结点可能出现在最后两层,最小编号的叶子结点为最大编号为n的叶子结点的父结点右边那个结点

补:如果一个二叉树的前序遍历结果是abcdefg,下面哪一个是可能的中序遍历结果(ABCE)?

A. abcdefg

B. gfedcba

C. bcdefga

D. bceadfg

E. Bcdaefg

解析:有两种方法:1,综合起来看是否能构成一棵二叉树;2、设abcdefg为进栈的顺序,符合出栈顺序的则可能是中序遍历的结果。

你可能感兴趣的:(刷题)