栈与队列客观题 2021-1-12
1-1 若一个栈的输入序列为1,2,3,…,N,输出序列的第一个元素是i,则第j个输出元素是j−i−1。
F
1-2 若一个栈的输入序列为{1, 2, 3, 4, 5},则不可能得到{3, 4, 1, 2, 5}这样的出栈序列。
T
1-3 所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。
F 特指循环数组
1-4 在用数组表示的循环队列中,front值一定小于等于rear值。
F 循环数组 大于小于等于都有可能 大于max后会取余
1-5 栈和队列的存储方式,既可以是顺序方式,也可以是链式方式。
T
2-1 假设有5个整数以1、2、3、4、5的顺序被压入堆栈,且出栈顺序为3、5、4、2、1,那么为了获得这样的输出,堆栈大小至少为:
A.2 B.3 C.4 D.5
c
2-2 设一个栈的输入序列是1、2、3、4、5,则下列序列中,是栈的合法输出序列的是?
A.3 2 1 5 4 B.5 1 2 3 4 C.4 5 1 3 2 D.4 3 1 2 5
a
2-3 设一个堆栈的入栈顺序是1、2、3、4、5。若第一个出栈的元素是4,则最后一个出栈的元素必定是:
A.1 B.3 C.5 D.1或者5
d
2-4 现有队列 Q 与栈 S,初始时 Q 中的元素依次是{ 1, 2, 3, 4, 5, 6 }(1在队头),S 为空。若允许下列3种操作:(1)出队并输出出队元素;(2)出队并将出队元素入栈;(3)出栈并输出出栈元素,则不能得到的输出序列是:
A.1, 2, 5, 6, 4, 3 B.2, 3, 4, 5, 6, 1 C.3, 4, 5, 6, 1, 2 D.6, 5, 4, 3, 2, 1
c
2-5 若用大小为6的数组来实现循环队列,且当前front和rear的值分别为0和4。当从队列中删除两个元素,再加入两个元素后,front和rear的值分别为多少?
A.2和0 B.2和2 C.2和4 D.2和6
a
2-6 如果循环队列用大小为m的数组表示,队头位置为front、队列元素个数为size,那么队尾元素位置rear为:
A.front+size B.front+size-1 C.(front+size)%m D.(front+size-1)%m
d
2-7 在一个不带头结点的非空链式队列中,假设f和r分别为队头和队尾指针,则插入s所指的结点运算是( )。
A.f->next=s; f=s; B.r->next=s; r=s; C.s->next=s; r=s; D.s->next=f; f=s;
b