以下关于栈和队列的叙述中,错误的是【 】。
A、栈和队列都是线性的数据结构
B、栈和队列都不允许在非端口位置插入和删除元素
C、一个序列经过一个初始为空的栈后,元素的排列次序一定不变
D、一个序列经过一个初始为空的队列后,元素的排列次序不变
以下关于栈和队列的叙述中,错误的是【 】。
A、栈和队列都是线性的数据结构
B、栈和队列都不允许在非端口位置插入和删除元素
C、一个序列经过一个初始为空的栈后,元素的排列次序一定不变
D、一个序列经过一个初始为空的队列后,元素的排列次序不变
C
【解析】
栈和队列是运算受限的线性表,栈的特点是后入先出,即只能在表尾插入和删除元素。队列的特点是先进先出,也就是只能在表尾插入元素,而在表头删除元素。因此,一个序列经过一个初始为空的队列后,元素的排列次序不变。在使用栈时,只要栈不空,就可以进行出栈操作,因此,一个序列经过一个初始为空的栈后,元素的排列次序可能发生变化。
表达式可采用后缀形式表示。例如,“a+b”的后缀式为“ab+”。那么,表达式“a*(b-c)+d”的后缀表示为【 】
对于一个初始为空的栈,其入栈序列为 1,2,3,...,n(n>3),若出栈序列的第一个元素是1则出栈序列的第n个元素【 】
对于初始为空的栈S,入栈序列为a、b、c、d,且每个元素进栈、出栈各1次。若出栈序列的第一个元素为d,则合法的出栈序列为【 】。
若元素a、b、c、d、e、f依次进栈,允许进栈、出栈操作交替进行。但不允许连续三次进行出栈工作,则不可能得到的出栈序列是【 】。
算术表达式a+b-c*d的后缀式是【 】(-、+、*表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。
若栈采用链式存储且仅设头指针,则【 】时入栈和出栈操作最方便。
在解决计算机与打印机之间速度不匹配的问题时,通常设置一个打印数据缓冲区,计算机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区取出数据。因此,该缓冲区的数据结构应该是【 】。
若要求对大小为n的数组进行排序的时间复杂度为 O(nlog2n),且是稳定的(即如果待排序的序列中两个数据元素具有相同的值,在排序前后它们的相对位置不变),则可选择的排序方法是【 】
采用【 】算法对序列{18,12,10,11,23,2,7}进行一趟递增排序后,其元素的排列变为{12,10,11,18,2,7,23}。
某二叉树的先序遍历(根、左、右)序列为 EFHIGJK、中序遍历(左、根、右)序列为HFIEJKG,则该二叉树根结点的左孩子结点和右孩子结点分别是【 】