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

以下关于栈和队列的叙述中,错误的是【 】。

A、栈和队列都是线性的数据结构

B、栈和队列都不允许在非端口位置插入和删除元素

C、一个序列经过一个初始为空的栈后,元素的排列次序一定不变

D、一个序列经过一个初始为空的队列后,元素的排列次序不变

答案解析

C

【解析】

栈和队列是运算受限的线性表,栈的特点是后入先出,即只能在表尾插入和删除元素。队列的特点是先进先出,也就是只能在表尾插入元素,而在表头删除元素。因此,一个序列经过一个初始为空的队列后,元素的排列次序不变。在使用栈时,只要栈不空,就可以进行出栈操作,因此,一个序列经过一个初始为空的栈后,元素的排列次序可能发生变化。

讨论

在解决计算机与打印机之间速度不匹配的问题时,通常设置一个打印数据缓冲区,计算机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区取出数据。因此,该缓冲区的数据结构应该是【 】。

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

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

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

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

采用【 】算法对序列{18,12,10,11,23,2,7}进行一趟递增排序后,其元素的排列变为{12,10,11,18,2,7,23}。

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

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

对于连通无向图 G,以下叙述中,错误的是【 】。

下图所示的非确定有限自动机(s0为初态,s3为终态)可识别字符串【 】。