课堂互动
显示答案 | 返回首页 作者:欧新宇(Xinyu OU)
最后更新:2023-09-29
1.(单选)设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5,e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1,则栈S的容量至少应该是()。
A. 2
B. 3
C. 4
D. 5
2.(单选)栈和队列的不同点是( )。
A. 都是线性表
B. 都不是线性表
C. 栈只能在同一端进行插入删除操作,而队列在不同端进行插入删除操作
D. 没有不同点
3.(单选)若某循环队列有队首指针front和队尾指针rear,在队不空时出队操作仅会改变( )。
A. front
B. rear
C. front 和 rear
D. 以上都不对
4.(单选)在循环队列中,元素的排列顺序( )。
A. 由元素进队的先后顺序确定
B. 与元素值的大小有关
C. 与队头和队尾指针的取值有关
D. 与队中数组大小有关
5. 队列的先进先出特性是指( )。
A. 最后插入队列中的元素总是最后被删除
B. 当同时进行插入、删除操作时,总是插入操作优先
C. 每当有删除操作时,总要先做一次插入操作
D. 每次从队列中删除的总是最早插入的元素
1.(单选)栈和队列的共同点是()。
A. 都是先进先出
B. 都是线性结构
C. 具有相同存储结构
D. 没有共同点
2.(单选)堆栈和队列的主要区别是()。
A. 限定元素插入和删除的位置不同
B. 逻辑结构不同
C. 存储结构不同
D. 名称不同
3.(单选)允许对队列进行的操作有()。
A.对队列中的元素排序
B.取出最近进队的元素
C.在队列元素之间插入元素
D.删除队头元素
4.(单选)【2021统考真题】初始为空的队列Q的一端仅能进行入队操作,另外一端既能进行入队操作又能进行出队操作。若Q的入队序列是1,2,3,4,5,则不能得到的出队序列是()。
A. 5,4,3,1,2
B. 5,3,1,2,4
C. 4,2,1,3,5
D. 4,1,3,2,5
5.(单选)【2010统考真题】某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作。若元素a,b,c,d,e依次入此队列后再进行出队操作,则不可能得到的出队序列是()。
A. b,a,c,d,e
B. d,b,a,c,e
C. d,b,c,a,e
D. e,c,b,a,d
1.(单选)设循环队列Q中数组data的下标是0~n-1,其队头、队尾指针分别为f和r(f指向队首元素的前一位置,r指向队尾元素),元素x进队的操作是( )。
_____()_____;
Q.data[Q.rear] = x;
A. Q.rear++
B. Q.rear = (Q.rear + 1)%n
C. Q.front++;
D. Q.front = (Q.front + 1)%n
2.(单选)若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为( )。
A. 1和5
B. 2和4
C. 4和2
D. 5和1
3.(单选)设循环队列的存储空间为a[0,...,20],且当前队头指针(f指向队首元素的前一位置)和队尾指针(r指向队尾元素)的值分别为8和3,则该队列中元素个数为( )。
A. 5
B. 6
C. 16
D. 17
4.(单选)【2011统考真题】已知循环队列存储在一维数组A[0,...,n-1]中,且队列非空时front和rear分别指向队头元素和队尾元素。若初始时队列空,且要求第一个进入队列的元素存储在A[0]处,则初始时front和rear的值分别是( )。
A. 0, 0
B. 0, n-1
C. n-1, 0
D. n-1, n-1
5.(单选)最不适合用作链式队列的链表是()。
A. 只带队首指针的非循环双链表
B. 只带队首指针的循环双链表
C. 只带队尾指针的循环双链表
D. 只带队尾指针的循环单链表
6.(单选)【2016统考真题】设有如下图所示的火车车轨,入口到出口之间有n条轨道,列车的行进方向均为从左至右,列车可驶入任意一条轨道。现有编号为1~9的9列列车,驶入的次序依次是8,4,2,5,3,9,1,6,7。若期望驶出的次序依次为1~9,则n至少是()。
A. 2
B. 3
C. 4
D. 5
1. 用单链表表示的链式队列的队头和队尾分别在链表的( )位置。
A. 链头和链尾
B. 链尾和链头
C. 链头和链中
D. 链尾和链中
2. 与顺序队相比,链队( )。
A. 优点是可以实现无限长队列
B. 优点是进队和出队时间性能更好
C. 缺点是不能进行顺序访问
D. 缺点是不能根据队首和队尾指针计算队的长度
3.(单选)最适合用作链队的链表是()。
A. 带队首指针和队尾指针的循环单链表
B. 带队首指针和队尾指针的非循环单链表
C. 只带队首指针的非循环单链表
D. 只带队首指针的循环单链表
4. 用链式存储方式的队列进行删除操作时需要()。
A. 仅修改头指针
B. 仅修改尾指针
C. 头尾指针都要修改
D. 头尾指针可能都要修改
5.(单选)在一个链队列中,假设队头指针为front,队尾指针为rear,x所指向的元素需要入队,则需要执行的操作为()。
A. front = x, front = front->next
B. x->next = front->next, front = x
C. rear->next = x, rear = x
D. rear->next = x, x->next = NULL, rear = x
6.(单选)假设循环单链表表示的队列长度为n,队头固定在链表尾,若只设头指针,则进队操作的时间复杂度为()。
A. O(n)
B. O(1)
C. O(n²)
D. O(nlog2n)
1. 栈的应用不包括( )。
A. 递归
B. 进制转换
C. 迷宫求解
D. 缓冲区
2. 表达式 a*(b+c)-d 的后缀表达式是( )。
A. abcd*+-
B. abc+*d-
C. abc*+d-
D. -+*abcd
3. 下面( )用到了队列。
A. 括号匹配
B. 表达式求值
C. 页面替换算法
D. 递归
4. 利用栈求表达式的值,设立运算数栈OPEN。假设OPEN只有两个存储单元,则在下列表达式中,不会发出溢出的是( )。
A. A-B*(C-D)
B. (A-B)*C-D
C. (A-B*C)-D
D. (A-B)*(C-D)
5. 【2014统考真题】假设栈初始为空,将中缀表达式 a/b+(c*d-e*f)/g 转换为等价后缀表达式的过程中,当扫描到f时,栈中的元素依次是( )。
A. +(*-
B. +(-*
C. /+(*-*
D. /+-*
6. 【2015统考真题】已知程序如下,程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息依次对应的是( )。
int S(int n){
return (n<=0)?0:S(n-1)+n;
}
void main(){
cout << S(1);
}
A. main() -> S(1) -> S(0)
B. S(0) -> S(1) -> main()
C. main() -> S(0) -> S(1)
D. S(1) -> S(0) -> main()
1. 通常设置循环队列Q的队空条件(front队首指针指向队首元素的前一位置,rear队尾指针指向队尾元素)是( )。
A. (Q.rear+1)%MaxSize == (Q.front+1)%MaxSize
B. (Q.rear+1)%MaxSize == Q.front+1
C. (Q.rear+1)%MaxSize == Q.front
D. Q.rear == Q.front
2. 假设用一个不带头节点的单链表表示队列,队头在链表的( )位置。
A. 链头
B. 链尾
C. 链中
D. 以上都可以
3.(单选)栈和队列具有相同的()。
A. 抽象数据类型
B. 逻辑结构
C. 存储结构
D. 运算
4. (单选)栈和队列的主要区别在于()。
A. 它们的存储结构不一样
B. 它们的逻辑结构不一样
C. 所包含的元素不一样
D. 插入、删除操作的限定不一样
5.(单选)一个队列的入队顺序是1,2,3,4,则出队的输出顺序是()。
A. 4,3,2,1
B. 1,2,3,4
C. 1,4,3,2
D. 3,2,4,1
6.(单选)[2019统考真题] 设栈S和队列Q的初始状态位空,元素abcdefg依次进入栈S。若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是bdcfeag,则栈S的容量是( )。
A. 1
B. 2
C. 3
D. 4
7.(单选)【2018统考真题】现有队列Q与栈S,初始时Q中的元素依次是1,2,3,4,5,6(1在队头),S为空。若仅允许下列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
8.(单选)【2014统考真题】循环队列放在一维数组A[0,...,M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。初始时为空。下列判断队空和队满的条件中,正确的是()。
A.队空:end1 == end2;队满: end1 == (end2+1)mod M
B.队空:end1 == end2; 队满:end2 == (end1+1)mod(M-1)
C.队空:end2 == (end1+1)mod M; 队满:end1 == (end2+1)mod M
D.队空:end1 == (end2+1)mod M;队满:end2 == (end1+1)mod(M-1)
9.(单选)在用单链表实现队列时,队头设在链表的()位置。
A. 链头
B. 链尾
C. 链中
D. 以上都可以
10.(单选)若以1,2,3,4作为双端队列的输入序列,则既不能由输入受限的双端队列得到,又不能由输出受限的双端队列得到的输出序列是()。
A. 1,2,3,4
B. 4,1,3,2
C. 4,2,3,1
D. 4,2,1,3
11.(单选)循环队列存储在数组A[0,...,n]中,入队时的操作为()。
A. rear=rear+1
B. rear=(rear+1) mod (n-1)
C. rear=(rear+1) mod n
D. rear=(rear+1) mod (n+1)
12.(单选)若用数组A[0,...,5]来实现循环队列,且当前rear和front的值分别为1和5,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()。
A. 3和4
B. 3和0
C. 5和0
D. 5和1
13.(单选)假设一个循环队列Q[MaxSize]的队头指针为front,队尾指针为rear,队列的最大容量为MaxSize,此外,该队列再没有其他数据成员,则判断该队列已满的条件是()。
A. Q.front == Q.rear
B. Q.front+Q.rear>=MaxSize
C. Q.front == (Q.rear+1)%MaxSize
D. Q.rear == (Q.front+1)MaxSize
14. 执行完下列语句段后,i的值为( )。
int f(int x){
return ((x>0)? x*f(x-1):2);
}
int i;
i = f(f(1));
A. 2
B. 4
C. 8
D. 无限递归
15. 对于一个问题的递归算法求解和其相对应的非递归算法求解,( )。
A. 递归算法通常效率一些
B. 非递归算法通常效率高一些
C. 两者相同
D. 无法比较
16. 执行函数时,其局部变量一般采用( )进行存储。
A. 树形结构
B. 静态链表
C. 栈结构
D. 队列结构
17. 执行( )操作时,需要使用队列作为辅助存储空间。
A. 查找散列(哈希)表
B. 广度有限搜索图
C. 前序(根)遍历二叉树
D. 深度优先搜索图
18. 下列说法正确的是( )。
A. 消除递归不一定需要使用栈
B. 对同一输入序列进行两组不同的合法入栈和出栈组合操作,所得的输出序列也一定相同
C. 通常使用队列来处理函数和过程调用
D. 队列和栈都是运算受限的线性表,只允许在表的两端进行运算
19. 【2009统考真题】为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中读取数据,该缓冲区的逻辑结构应该是( )。
A. 栈
B. 队列
C. 树
D. 图
20. 【2012统考真题】已知操作符包括 “+” “-” “*” “/” “(” “)”。将中缀表达式 a+b-a*((c+d)/e-f)+g 转换为等价的后主表达式 ab+acd+e/f-*-g+ 时,用栈来放暂时不能确定运算次序的操作符。栈初始时为空时,转换过程中同时保存在栈中的操作符的最大个数是( )。
A. 5
B. 7
C. 8
D. 11