第4章-栈、队列(常规课版)

*
您的姓名:
*
1.
已知循环队列存储在一维数组A[0..n-1]中,且队列非空时front和rear分别指向队头元素和队尾元素。若初始时队列空,且要求第一个进入队列的元素存储在A[0]处,则初始时front和rear的值分别是()?
0,0
n-1,0
0,n-1
n-1,n-1
*
2.
若元素9、3、7、2、8依次入栈,允许进栈、退栈的操作交替进行,但不允许连续3次退栈工作,则下列哪些是不可能的出栈序列?(多选题)【多选题】
9、3、7、2、8
3、9、7、2、8
8、2、7、3、9
2、8、7、3、9
7、3、9、2、8
9、7、3、2、8
*
3.
若一个栈用数组data[1..n]存储,初始栈顶指针top为0,则以下元素x进栈的正确操作是()?
top--; data[top]=x;
top++; data[top]=x;
data[top]=x; top++;
data[top]=x; top--;
*
4.
当用一个数组data[0..n-1]存放栈中元素时,栈底最好()?
设置在data[0]或data[n-1]处
设置在data[n-1]处
设置在data[0]处
设置在data数组的任何位置
*
5.
若元素a、b、c、d、e、f依次进栈,允许进栈、退栈的操作交替进行,但不允许连续3次退栈工作,则不可能得到的出栈序列是()?
bcaefd
cbdaef
dcebfa
afedcb
*
6.
设循环队列qu中数组data的下标是0~N-1,其队头、队尾指针分别为f和r(f指向队首元素的前一位置,r指向队尾元素),元素x进队的操作是()?
qu.rear=(qu.rear+1)%N
qu.front++;
qu.rear++
qu.front=(qu.front+1)%N
*
7.
顺序栈的判空条件为( )
top == 0
top == -1
top == MaxSize
top == front
*
8.
栈和队列的共同点是()?
都是先进后出
没有共同点
只允许在端点处插入和删除元素
都是先进先出
*
9.
一个栈的进栈序列是a、b、c、d、e,则栈的不可能的输出序列是()?
decba
abcde
dceab
edcba
*
10.
栈和队列都是()?
限制存取点的非线性结构
限制存取点的线性结构
链式存储的非线性结构
顺序存储的线性结构
*
11.
若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()?
4和2
5和1
2和4
1和5
*
12.
给定一个足够大的空栈,有4个元素的进栈次序为A、B、C、D,则以CD开头的出栈序列的个数为()?
4
3
2
1
*
13.
若某循环队列有队首指针front和队尾指针rear,在队不空时出队操作仅会改变()?
front和rear
rear
以上都不对
front
*
14.
在顺序栈中,判断栈是否已满的条件是( )
top == MaxSize
top == MaxSize - 1
top == rear
top == 0
*
15.
假设用一个不带头节点的单链表表示队列,队头在链表的()位置?
以上都可以
链头
链尾
链中
*
16.
一个循环队列中用data[0..n-1]数组保存队中元素,另设置一个队尾指针rear和一个记录队中实际元素个数的变量count,则该队中最多可以存放的元素个数是()?
(n-rear)%n
n-1
(rear+n)%n
n
*
17.
若采用链式存储实现队列,则入队操作应插入在( )
中间节点后
表头
任意位置
表尾
*
18.
设循环队列的存储空间为a[0..20],且当前队头指针(f指向队首元素的前一位置)和队尾指针(r指向队尾元素)的值分别为8和3,则该队列中元素个数为()?
5
17
16
6
*
19.
若元素5、2、8、6、1依次入栈,允许进栈、退栈的操作交替进行,则下列哪些是可能的出栈序列?(多选题)【多选题】
6、8、2、5、1
1、6、8、2、5
2、5、8、6、1
8、6、2、5、1
5、2、8、6、1
*
20.
用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行出队操作时()?
仅修改队尾指针
队头、队尾指针都可能要修改
队头、队尾指针都要修改
仅修改队头指针
*
21.
若一个栈用数组data[1..n]存储,初始栈顶指针top为n+1,则以下元素x进栈的正确操作是()?
data[top]=x; top++;
data[top]=x; top--;
top--; data[top]=x;
top++; data[top]=x;
*
22.
栈是一种特殊的线性表,它所有的插入和删除都限制在表的同一端进行。()
*
23.
循环队列存储在数组A[0..m]中,则入队时的操作为()?
rear=(rear+1)mod(m-1)
rear=(rear+1)mod m
rear=rear+1
rear=(rear+1)mod(m+1)
*
24.
假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为()?
(front-rear+m)%m
rear-front+1
(rear-front+m)%m
(rear-front)%m
*
25.
最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()?
rear+1=front
rear=front
(rear+1)MOD n=front
(rear-1)MOD n=front
*
26.
若一个栈执行操作:Push(A),Push(B),Pop(),Push(C),则栈顶元素为( )
C
A
B
空栈
*
27.
若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少()?
1和5
4和2
2和4
5和1
*
28.
栈的"先进后出"特性是指()?
每当有出栈操作时,总要先进行一次进栈操作
最后进栈的元素总是最先出栈
同时进行进栈和出栈操作时,总是进栈优先
每次出栈的元素总是最先进栈的元素
*
29.
队列的存储结构通常采用( )
只能顺序存储
顺序存储或链式存储
只能链式存储
树形存储
*
30.
下列关于循环队列的描述,错误的是( )
空队列的条件是 front == rear
队满条件是 (rear+1)%MaxSize == front
入队时 rear = (rear + 1) % MaxSize
出队时 front = (rear + 1) % MaxSize
*
31.
设循环队列qu中数组data的下标是0~N-1,其队头、队尾指针分别为f和r(f指向队首元素的前一位置,r指向队尾元素),元素x出队的操作是()?
qu.rear=(qu.rear+1)%N
qu.rear++
qu.front=(qu.front+1)%N
qu.front++;
*
32.
若一个循环队列初始 `front=0`、`rear=0`,插入两个元素后的状态是( )
front = 0, rear = 1
front = 0, rear = 2
front = 2, rear = 2
front = 1, rear = 2
*
33.
栈和队列的不同点是()?
没有不同点
都不是线性表
都是线性表
栈只能在同一端进行插入删除操作,而队列在不同端进行插入删除操作
*
34.
在设计链栈时,通常采用单链表作为链栈,而不采用双链表作为链栈,其准确的原因是()?
栈中元素是随机存取的,用单链表就足够了
双链表存储密度较单链表低
栈中元素是顺序存取的,用单链表就足够了
双链表运算较单链表更复杂
*
35.
用单链表表示的链式队列的队头在链表的()位置?
链头
第一个真实节点
链尾
链中
*
36.
设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是()?
2
6
4
3
*
37.
以下哪一项不是栈的应用场景?( )
函数调用实现
括号匹配
表达式求值
图的广度优先遍历
*
38.
在循环队列中,元素的排列顺序()?
由元素进队的先后顺序确定
与元素值的大小有关
与队头和队尾指针的取值有关
与队中数组大小有关
*
39.
若用链式存储实现栈,则出栈操作的时间复杂度为( )
O(n)
O(1)
O(log n)
O(n log n)
*
40.
在栈中,插入和删除操作发生在( )
中间位置
栈顶
任意位置
栈底
*
41.
通常设置循环队列qu的队空条件(front队首指针指向队首元素的前一位置,rear队尾指针指向队尾元素)是()?
qu.rear==qu.front
(qu.rear+1)%MaxSize==qu.front
(qu.rear+1)%MaxSize==qu.front+1
(qu.rear+1)%MaxSize==(qu.front+1)%MaxSize
*
42.
下列操作序列中,不可能是合法的栈操作顺序的是( )
Push(1), Push(2), Pop(), Pop()
Push(1), Push(2), Push(3), Pop()
Push(1), Pop(), Pop()
Push(1), Push(2), Pop(), Push(3), Pop()
*
43.
用带头结点的单链表用链接方式存储的队列,在进行出队操作时()?
头、尾指针都不修改
头、尾指针都要修改
仅修改尾指针
仅修改头指针
*
44.
与顺序队相比,链队()?
优点是进队和出队时间性能更好
缺点是不能进行顺序访问
缺点是不能根据队首和队尾指针计算队的长度
优点是可以实现无限长队列
*
45.
若元素3、7、1、9、4依次入栈,允许进栈、退栈的操作交替进行,则下列哪些是可能的出栈序列?【多选题】
1、7、3、9、4
9、4、1、7、3
7、3、1、9、4
3、1、7、9、4
3、7、1、9、4
4、9、1、7、3
*
自己名字签名
请在以下矩形区域内绘制
清空撤销橡皮擦确定并上传
问卷星提供技术支持
举报