错题本——数据结构(树)

在任意一棵非空二叉排序树T1中, 删除某结点v之后形成二叉排序树 T2,再将v 插入T2形成二叉排序树T3。下列关于T1与T3的叙述中,正确的是( )。
I.若 v 是 T1的叶结点,则 T1 与 T3 不同
II. 若 v 是 T1的叶结点,则 T1与 T3相同
III.若 v 不是 T1 的叶结点,则 T1 与 T3 不同
IV.若v 不是 T1 的叶结点,则 T1 与 T3 相同

解析:
在这里插入图片描述

以下说法正确的是( )。
A 若有一个结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是该子树的前序遍历结果序列的最后一个结点。
B 若有一个结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子树的中序遍历结果序列的最后一个结点。
C 若有一个页子结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是该子树的前序遍历结果序列的最后一个结点。
D 若有一个页子结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子树的中序遍历结果序列的最后一个结点。

解析:
在这里插入图片描述
A:中序遍历结果为AB,前序遍历结果为BA,因此错误
B:前序遍历结果为BA,中序遍历结果为AB,因此错误
在这里插入图片描述
C:中序遍历的情况下,固定了叶子结点为最后一个结点,因此一定有右子树,中序遍历和前序遍历的顺序都是将右子树放在最后一个,因此C正确
D:前序遍历的情况下,固定了叶子结点为最后一个结点,可以为左子树,因此错误

假设二叉排序树的定义是:1、若它的左子树不为空,则左子树所有节点均小于它的根节点的值;2、若右子树不为空,则右子树所有节点的值均大于根节点的值;3、它的左右子树也分别为二叉排序树。下列哪种遍历之后得到一个递增有序数列 ()
答案:中序遍历

在具有 2n 个结点的完全二叉树中,叶子结点个数为( )。
答案: n

解析:
完全二叉树中,有n2 = n0 - 1
再根据题设条件,得n0 + n1 + n2 = 2n
则可得:2n0 + n1 - 1 = 2n
完全二叉树中,n1只能为0或1,由于2n为偶数,故n1 = 1
因此,n0 = n

某二叉树的先序序列和后序序列正好相反,则该二叉树一定是()
A 空或只有一个结点
B 高度等于其结点数
C 任一结点无左孩子
D 任一结点无右孩子
答案:B

解析:
由于先序遍历是“根――左子树――右子树”,而后序遍历是“左子树――右子树――根”,若某二叉树的先序和后序序列正好相反,则该二叉树每层左、右子树只能有1个,即则该二叉树一定是高度等于其结点数

一棵二叉树共有 25 个结点,其中 5 个是叶子结点,则度为 1 的结点数为( )
答案:16

解析:任何树中,度数为2的结点个数比叶子(度数为0)结点的个数少1

一棵二叉树高度为h(根的高度为1),所有结点的度或为0或为2,则这棵二叉树最少有多少个结点?
A 2h
B 2h+1
C 2h-1
D h+1
答案:C

解析:就取 h=1 的情况

设一棵三叉树中有 2 个度数为 1 的结点, 2 个度数为 2 的结点, 2 个度数为 3 的结点,则该三叉链权中有( )个度数为 0 的结点。
答案:7

解析:
(1) 三叉树结点的度数均不大于3,结点总数应等于 i 度结点数(记为ni)和: N = n 0 + n 1 + n 2 + n 3 N=n_{0}+n_{1}+n_{2}+n_{3}
(2) i 度结点有 i 个孩子,根结点不是任何结点的孩子,结点总数为: N = n 1 + 2 n 2 + 3 n 3 + 1 N=n_{1}+2n_{2}+3n_{3}+1
得到: n 0 = n 2 + 2 n 3 + 1 n_{0}=n_{2}+2n_{3}+1

根据使用频率为 5 个字符设计的哈夫曼编码不可能是( )。
A 000,001,010,011,1
B 0000,0001,001,01,1
C 000,001,01,10,11
D 00,100,101,110,111
答案:D

解析:
哈夫曼树的节点要么是叶子节点,要么是度为2的节点,不可能出现度为1的节点

深度为k的完全二叉树中最少有()个结点。
A 2^(k-1)-1
B 2^(k-1)
C 2^(k-1)+1
D 2^k-1
答案:B

解析:
完全二叉树的最少情况是最后一层只有最左边有一个叶子结点,那么上面的 k-1 层数满二叉树节点数为 2 ( k 1 ) 1 2^{(k-1)}-1 ,因此完全二叉树的节点数是 2 ( k 1 ) 1 + 1 = 2 ( k 1 ) 2^{(k-1)}-1+1=2^{(k-1)}

由权值为9,2,7,5的四个叶子节点构造一棵哈夫曼树,该树的带权路径长度为:
答案:44

解析:
在这里插入图片描述

线性结构的是()
A 串
B 链式存储栈
C 顺序存储栈
D 顺序存储二叉树
答案:ABC

解析:
线性是线性,顺序是顺序,线性是逻辑结构,顺序是存储结构,两者不是一个概念,线性是指一个元素后继只有唯一的一个元素或节点,非线性是一个元素后面可以有多个后继或前继节点,顺序是指存储结构连续,例如数组是顺序的,链表不是顺序的,但他们都是线性的。当然顺序也可以是非线性的,例如顺序结构存储非线性结构的二叉树

将含有41个结点的完全二叉树从根结点开始编号,根为1号,后面按上到下,从左到右的顺序对结点的编号,那么编号为21的双亲结点编号为( )
答案:10

解析:
完全二叉树tree[i],有如下特点:
(1)若i为奇数且i>1,那么tree的左兄弟为tree[i-1];
(2)若i为偶数且i<n,那么tree的右兄弟为tree[i+1];
(3)若i>1,tree的父亲节点为tree[i / 2];
(4)若2i<=n,那么tree的左孩子为tree[2i];若2i+1<=n,那么tree的右孩子为tree[2i+1];
(5)若i>n / 2,那么tree[i]为叶子结点;
(6)若i<(n-1) / 2,那么tree[i]必有两个孩子

已知一棵有 2011 个结点的树,其叶结点个数为 116 ,该树对应的二叉树中无右孩子的结点个数是 ( )
答案:1896

解析:
普通树转化为二叉树后,度为1的结点只有左孩子而无右孩子,考虑如下特殊情况:
在这里插入图片描述
也就是最后一层上面的1895个结点再加最后一个叶子节点没有右孩子

不含任何结点的空树()。
A 是一棵树;
B 是一棵二叉树;
C 是一棵树也是一棵二叉树;
D 既不是树也不是二叉树
答案:B

解析:
二叉树可以为空,但是树不可以空,树是图的特例,图是不能为空的

在一棵具有15个关键字的4阶B树中,含关键字的结点数最多是 ()
答案:15

解析:
根据m阶B-树定义

对n(n大于等于2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,正确的是()
A 树中一定没有度为1的结点
B 该树一定是一棵完全二叉树
C 树种任一非叶结点的权值一定不小于下一任一结点的权值
D 树中两个权值最小的结点一定是兄弟结点
答案:ACD

解析:
A 哈夫曼树中,所有的字符串结点都是和其他字符串结点或者权值结点构成子树,因此不可能存在度为1的结点,故正确
B 完全二叉树意为前n-1层为满二叉树,最后一层连续缺失右边结点的二叉树,而哈夫曼树无法保证最后一层连续缺失右边结点以及前n-1层为满二叉树,故错误
C 树中任意节点的权值一定大于自己的左右孩子,但不能保证一定不小于其他下一任结点的权值,故正确
D 生成哈夫曼树的第一步就是在结点集合中找到两个权值最小的结点,然后生成一棵二叉树,故正确

某二叉树共有4个结点,前序(先根序)遍历该二叉树的4个结点并记录各结点取值,得到的结果是“abcd”。那么,该二叉树有多少种可能的拓扑结构?()
答案:14

解析:
不要被先序遍历迷惑,其实就是4个结点的二叉树有多少种,典型的卡特兰数应用 h ( n ) = C 2 n n n + 1 h(n)=\frac{C^{_{2n}^{n}}}{n+1}

由3个结点可以构造出多少种不同的有向树?()
答案:2

解析:
满足下列条件的有向图被称为有向树:
(1)有且仅有一个结点的入度为0;
(2)除树根外的结点入度为1;
(3)从树根到任一结点有一条有向通路。
故,应和二叉树区分开来,有向树只是孩子节点有顺序之分,没有左右之分

不是存储结构的是()
A 二叉树
B 双向链表
C 哈希表
D 循环队列
答案:A

解析:
树只是表现数据的层次关系,不是一种存储结构,通常使用链表来存储树结构

基于哈希的索引和基于树的索引有什么区别?
A hash索引仅满足“=”、“IN”和“<=>”查询,不能使用范围查询
B hash索引无法被用来进行数据的排序操作
C 对于组合索引,Hash 索引在计算 Hash 值的时候是组合索引键合并后再一起计算 Hash 值,而不是单独计算 Hash 值,所以通过组合索引的前面一个或几个索引键进行查询的时候,Hash 索引也无法被利用
D Hash 索引遇到大量Hash值相等的情况后性能并不一定就会比B-Tree索引高
答案:ABCD

解析:

  • hash索引因为底层是哈希表,数据存储在哈希表中顺序是没有关联的,所以他不适合范围查找,如果要范围查找就需要全表扫描,他只适合全值扫描;简单的来说就是hash索引适合等值查找,不适合范围查找
  • B+ tree树索引,底层是多路查询平衡树,节点是天然有序的(左节点小于服节点,右节点大于父节点),所以对于范围查找的时候不需要做全表扫描;
  • -hash索引无法进行排序
  • 哈希碰撞问题,如果存在重复键值对,哈希索引效率就会很低

果一个二叉树的前序遍历结果是abcdefg,下面哪一个是可能的中序遍历结果?
A abcdefg
B gfedcba
C bcdefga
D bceadfg
E bcdaefg
答案:ABCE

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

方法1结果
在这里插入图片描述
但是显然方法2要来的简单许多

在对问题的解空间树进行搜索的方法中,一个结点有多次机会成为活结点的是:()
正确答案: B 你的答案: B (正确)
动态规划
回溯法
分支限界法
回溯法和分支限界法

解析:
关于分支界限法的内容详细参见分支限界法 图文+01背包举例

高度为1的平衡二叉树节点为1个,高度为5的最少多少个?
答案:12

解析:
在节点最少的情况下,左右子树的高度差为1,故 S n = S n 1 + S n 2 + 1 S(n)=S(n-1)+S(n-2)+1 ,此数列与斐波那契数列( F n = F n 1 + F n 2 F(n)=F(n-1)+F(n-2) )相似,由归纳法可得 S n = F n + 2 1 S(n)=F(n+2)-1

判断下列说法是否正确:已知完全二叉树的第七层中有10个叶子结点,则整个二叉树中最多有73个结点。()
错误

解析:
根据完全二叉树的性质,第七层最多能容2^6=64个结点。
根据题意,第7层有10个叶子结点。
①结点最少的情况:第七层仅有10个结点。前六层共有2^6-1=63个结点。加上第7层的10个叶子结点,就是73个结点。即题中描述的二叉树最少有73个结点。
②结点最多的情况:第七层有64个结点,其中有54个结点有孩子结点,剩下的10个结点为叶子结点。前七层总计结点数为2^7-1=127个结点。第八层有54*2=108个结点。两者相加为235个结点。即题中描述的二叉树最多有235个结点。

设一组权值集合 W=(15 , 3 , 14 , 2 , 6 , 9 , 16 , 17) ,要求根据这些权值集合构造一棵哈夫曼树,则这棵哈夫曼树的带权路径长度为( )
答案:229

解析:
在这里插入图片描述

在二叉树节点的先序序列、中序序列和后序序列中,所有叶子节点的先后顺序( )
答案:完全相同

解析:遍历叶子的相对位置是不变的

若二叉树用二叉链表作存贮结构,则在 n 个结点的二叉树链表中只有 n—1 个非空指针域()。
答案:正确

解析:是非空指针域

若 A=10 , B=4 , C=6 , D=4 , E=15 则后缀表达式“ AB*CD±E+ ”的值为 ( ) 。
答案:45

解析:
先让AB入栈,碰到*,AB出栈,计算AB,结果40入栈,
紧接着CD入栈,碰到+,CD出栈,计算C+D,结果10入栈,
碰到-,40和10出栈,计算40-10,结果30入栈,
E入栈,碰到+,30和E出栈,计算30+E,得出结果45

一棵有n个结点的二叉树,按层次从上到下,同一层从左到右顺序存储在一维数组A[1…n]中,则二叉树中第i个结点(i从1开始用上述方法编号)的右孩子在数组A中的位置是()
正确答案: D 你的答案: B (错误)
A[2i] (2i<=n)
A[2i+1] (2i+1<=n)
A[i-2]
条件不充分,无法确定

解析:必须是完全二叉树才能确定

B+树不同于B树的特点之一是 。
正确答案: A
能支持顺序查找
结点中含有关键字
根结点至少有两个分支
所有叶结点都在同一层上

解析:
由于B+树的所有叶结点中包含了全部的关键字信息,且叶结点本身依关键字从小到大顺序链接,可以进行顺序查找,而B树不支持顺序查找(只支持多路查找)

最小生成树的普里姆(Prim)算法中边上的权可正可负。 ()
答案:正确

解析:
prim算法权值可正可负

某完全二叉树共有200个结点,则该二叉树中有()个叶子结点
正确答案: C
50
75
100
25

解析:
抓住完全二叉树度为1的结点个数要么1,要么0

发布了55 篇原创文章 · 获赞 17 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_38204302/article/details/104311170
今日推荐