单项选择(2014年春程序员软考)

完全二叉树的特点是叶子结点分布在最后两层,且除最后一层之外,其他层的结点数都达到最大值,那么25个结点的完全二叉树的高度(即层数)为【 】。

A、3

B、4

C、5

D、6

答案解析

C若深度为k的二叉树有2k-1个结点,则称其为满二叉树。满二叉树中每层上的结点数达到最大值。可以对满二叉树中的结点进行连续编号,约定编号从根结点起,自上而下、自左至右依次进行。深度为k、有n个结点的二叉树,当且仅当其每一个结点都与深度为k的满二又树中编号为1~n的结点一一对应时,称之为完全二叉树。高度为3满二叉树如下图(a...

查看完整答案

讨论

用一维数组存放的一棵完全二叉树如下:A、B、C、D、E、F、G、H、I、J、K、L写出后序遍历该二叉树时访问结点的顺序。

一棵二叉树按中序遍历时各结点被访问的次序和这棵二叉树按后序遍历时各结点被访问的次序能否唯一确定这棵二叉树的结构?为什么?若已知一棵二叉树按先序遍历时各结点被访问的次序和这棵二叉树按后序遍历时各结点被访问的次序,能否唯一确定这棵二叉树的结构?为什么?

对于二叉树T 的两个结点 n1 和 n2 ,我们应该选择树 T 结点的前序、中序和后序中哪两个序列来判断结点 n1 必定是结点 n2的祖先,并给出判断的方法。不需证明判断方法的正确性。

证明一棵二叉树无论进行先序、中序、后序遍历,其叶子结点的相对次序不发生改变。

对二叉排序树进行【 】遍历,可以得到该二叉树所有结点构成的排序序列。

已知一棵二叉树,如果先序遍历的顺序是ADCEFGHB,中序遍历的顺序是CDFEGHAB,则后序遍历的结果为【 】。

如果一棵huffman树T有n0个叶子结点,那么,树T有多少个结点?要求给出求解过程。

求具有最小带权路径长度的二叉树的算法称为__________算法。对于给出的一组权W={10,12,16,21,30},通过该算法示出的二叉树的带权路径长度为__________。

线索二叉树是一种【 】结构。

二叉树在线索化后,仍不能有效求解的问题是【 】。

在单 CPU 计算机系统中,完成相同功能的递归程序比非递归程序【 】

线性表采用单循环链表存储的主要特点是【 】

若要求对大小为n的数组进行排序的时间复杂度为 O(nlog2n),且是稳定的(即如果待排序的序列中两个数据元素具有相同的值,在排序前后它们的相对位置不变),则可选择的排序方法是【 】

对于一般的树结构,可以采用孩子-兄弟表示法,即每个结点设置两个指针域,一个指针(左指针)指示当前结点的第一个孩子结点,另一个指针(右指针)指示当前结点的下一个兄弟结点。某树的孩子-兄弟表示如下图所示。以下关于结点 D 与 E 的关系的叙述中,正确的是【 】。

搜索引擎会通过日志文件把用户每次检索使用的所有查询串都记录下来,每个查询串的长度不超过255 字节。假设目前有一千万个查询记录(重复度比较高,其实互异的查询串不超过三百万个;显然,一个查询串的重复度越高,说明查询它的用户越多,也就是越热门)。现要统计最热门的 10 个查询串,且要求使用的内存不能超过 1GB。以下各方法中,可行且效率最高的方法是【 】。

表达式可采用后缀形式表示。例如,“a+b”的后缀式为“ab+”。那么,表达式“a*(b-c)+d”的后缀表示为【 】

某二叉树的先序遍历(根、左、右)序列为 EFHIGJK、中序遍历(左、根、右)序列为HFIEJKG,则该二叉树根结点的左孩子结点和右孩子结点分别是【 】

在C程序中有一个二维数组 A[7][8],每个数组元素用相邻的 8 个字节存储,那么存储该数组需要的字节数为【 】。

设 S 是一个长度为n的非空字符串,其中的字符各不相同,则其互异的非平凡子串(非空且不同于S本身)的个数为【 】。

折半(二分)查找法适用的线性表应该满足【 】的要求。