栈和队列-题库
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(A)调用子程序 (B)购物排队
(C)后置式转换 (D)执行中断
12.下列哪些数据结构可用来实现堆栈
(1)链表 (2)数组 (3)树 (4)图
(A)(2),(3) (B)(2),(4) (C)(1),(4) (D)(1),(2)
13.有一栈,一开始是空的,假设 push(X)指令会将数据放入栈,pop 指令会将栈顶的数
位置
(A)链头 (B)链尾 (C)链中
27.在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机
将要输出的数据依次写入该缓冲区,而打印机则从该缓冲区中取出数据打印.该缓冲区应该是
一个
结构.
(A)堆栈 (B)队列 (C)数组 (D)线性表
28.设栈的输入序列为 1,2,3,…,n,输出序列为 a1,a2,a3,…,an,若存在 1<=k<=n 使得 ak=n,则当 k<=i<=n 时,ai 为 (A)n-i+1 (B)n-(i-k) (C)不确定 29、若已知一个栈的入栈序列是 1,2,3,4….,n,其输出序列为 p1,p2,p3,p4,….,pn,若 p1=n,
据输出。现在有 ABCDE 五个数据依次以 push 指令放入栈中,在放入的过程与结束后,陆
续执行了一些 pop 指令,下列哪个选项为不可能的输出结果
(A)ABCDE (B)EDCBA (C)EABCD (D)ABDEC
14.下列哪种数据结构常用于系统程序的作业调度
(A)栈 (B)队列 (C)链表 (D)数组
出队列操作应执行以下
(A) temp=queue[rear];rear--;
(B) rear++; temp=queue[rear];
(C) temp=queue[front];front--; (D) front++; temp=queue[front];
5.在用链表仿真堆栈时(假设 stack 为栈顶指针),将 new 指针指向的节点执行入栈操作应
答卷的对应栏内。
在做进栈运算时,应先判别栈是否 ;在做退栈运算时,应先判别栈是否 。当栈
中元素为 n 个,做进栈运算时发生上溢,则说明该栈的最大容量为 。
为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应
将两栈的 分别设在这片内存空间的两端,这样,只有当 时,才产生上溢。
18.栈中元素的进出原则是
A.先进先出 B.后进先出
C.栈空则进
D.栈满则出
19.若已知一个栈的入栈序列是 1,2,3,…,n,其输出序列为 p1,p2,p3,…,pn,若
p1=n,则 pi 为
A.i B.n=i
C.n-i+1
D.不确定
20.判定一个栈 ST(最多元素为 m0)为空的条件是
A.ST->top<>0 B.ST->top=0
15.从键盘输入的数据会先存在
(A)队列 (B)栈 (C)集合 (D)堆
16.一个队列的入队序列是 1,2,3,4,则队列的输出序列是
(A)4,3,2,1 (B)1,2,3,4 (C)1,4,3,2 (D)3,2,4,1
17.栈和队列的共同点是
(A)都是先进后出 (B)都是先进先出
(C)只允许在端点处插入和删除元素 (D)没有共同点
(A) dcba (B)abcd (C) dcab
(D) cbad
3.链表仿真堆栈时,栈空的条件是
(A) top<maxsize-1 (B) top==NULL (C) 没有限制 (D) top<0
4.在用数组 queue[maxsize]仿真队列时(temp 为 int 型变量),假设队列中至少有一个元素,
a 带尾指针的非循环链表
b 带尾指针的循环链表
c 带头指针的非循环链表
d 带头指针的循环链表
37、 若用一个大小为 6 的数组来实现循环队列,且当 rear 和 front 的值分别为 0 和 3。
当从队列中删除一个元素,再加入两个元素后,rear 和 front 的值分别为多少?
A 1和5
B2和4 C 4和2 D5和1
B. rear- front-1==m0
C. front== rear
D. front== rear+1
32、判断一个循环队列 QU(最多元素为 m0)为满队列的条件是
。
A. front== rear
B. front!= rear
C. front==( rear+1)%m0
D. front!=( rear+1)%m0
答卷的对应栏内。
栈是一种线性表,它的特点是 。设用一维数组 A[1,…,n]来表示一个栈,A[n]为栈
底,用整型变量 T 指示当前栈顶位置,A[T]为栈顶元素。往栈中推入(PUSH)一个新元素
时,变量 T 的值 ;从栈中弹出(POP)一个元素时,变量 T 的值 。设栈空时,
有输入序列 a,b,c,经过 PUSH,POP,PUSH,PUSH,POP 操作后,从栈中弹出的元素
20.n
个数顺序(依次)进栈,出栈序列有 Cn
中,即 Cn
=
1× n +1
(2n)! 。( (n!) 2
)
21.即使对不含相同元素的同一输入序列进行两组不同的、合法的入栈和出栈组合操作,所
得的输出序列也一定相同。( )
21.除递归不一定需要使用栈。( )
栈的输入序列为 123…n,输出序列为 a1a2…an,若 ai=n(1≤I<n-1),则 ai≥ai+1>an。( ) 二、单项选择
38、 设栈的输入队列是 1、2、3、…、n,则输出序列为 a1、a2、…、an,若存在 1≤k
≤n 使得 ak=n,则当 k≤i≤n 时,ai 为
A n-I+1
B n-(I-k)
C 不确定
39、 设栈 S 和队列 Q 的初始状态为空,元素 e1、e2、e3、e4、e5、e6 依次通过栈 S,
一个元素出栈后即进入队列 Q,若 6 个元素出队的序列是 e2、e4、e3、e6、e5、e1,则栈 S
答卷的对应栏内。
设有 4 个数据元素 a1、a2、a3 和 a4,对他们分别进行栈操作或队操作。在进栈或进队
操作时,按 a1、a2、a3、a4 次序每次进入一个元素。假设栈或队的初始状态都是空。
现要进行的栈操作是进栈两次,出栈一次,再进栈两次,出栈一次;这时,第一次出栈得到
的元素是
,第二次出栈得到的元素是
是;类似地,考虑对这四个数据元
素进行的队操作是进队两次,出队一次,再进队两次,出队一次;这时,第一次出队得到的
元素是
,第二次出队得到的元素是
。经操作后,最后在栈中或队中的元素还
有
个。
供选择的答案:
A~D:①a1 ②a2 ③ a3 ④a4
E: ①1 ②2 ③ 3 ④ 0
24.从供选择的答案中,选出应填入下面叙述 ? 内的最确切的解答,把相应编号写在
则 pi 为
。
A. i
B. n=i
C. n-i+1
D. 不确定
30、一个队列的入列序列是 1,2,3,4,则队列的输出序列是
。
A. 4,3,2,1
B. 1,2,3,4
C. 1,4,3,2
D. 3,2,4,1
31、判断一个队列 QU(最多元素为 m0)为空的条件是
。
A. rear- front==m0
(C) push A pop B push B pop A
(D) push B pop A push A pop B
9.存储调用语句的返回地址会使用哪种数据结构
(A)队列 (B)树 (C)堆栈 (D)集合
10.编译器中通常以哪种数据结构处理递归程序调用
(A)队列 (B)数组 (C)堆栈 (D)记录
11.下列哪一个与栈的应用无关
的序列是 ,变量 T 的值是 。
供选择的答案:
A: ① 先进先出 ②后进先出 ③进优于出
④出优于进 ⑤ 随机进出
B,C: ① 加 1 ②减 1
③不变
④清 0 ⑤ 加 2
⑥减 2
D:① a,b ②b,c ③c,a
④b,a
⑤ c,b
⑥ a,c
E:① n+1 ②n+2 ③ n
④ n-1 ⑤ n-2
25.从供选择的答案中,选出应填入下面叙述 ? 内的最确切的解答,把相应编号写在
22.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素
的位置,假定队列中元素的个数小于n,计算队列中元素的公式为
(A)r-f; (B)(n+f-r)% n; (C)n+r-f;
(D)(n+r-f)% n
23.从供选择的答案中,选出应填入下面叙述 ? 内的最确切的解答,把相应编号写在
A. front == rear
B. front != rear
C. front == (rear + 1)%MaxSize
D. front != (rear + 1)%MaxSize
35、栈和队列的共同点是
。
A. 都是先进后出
B. 都是先进先出
C. 只允许在端点处插入和删除元素
D. 没有共同特点
36、 若用单链表来表示队列,则应该选用
C.ST->top<>m0
D.ST->top=m0
21.判定一个队列 QU(最多元素为 m0)为满队列的条件是 A.QU->rear - QU->front = = m0 B.QU->rear - QU->front -1= = m0
C.QU->front = = QU->rear
D.QU->front = = QU->rear+1
供选择的答案:
A,B:①空
②满
③ 上溢 ④ 下溢
C: ①n-1
②n
③ n+1
④ n/2
D: ① 长度 ②深度
③ 栈顶 ④ 栈底
E:①两个栈的栈顶同时到达栈空间的中心点
②其中一个栈的栈顶到达栈空间的中心
点
③两个栈的栈顶在达栈空间的某一位置相遇 ④两个栈均不空,且一个栈的栈顶到达另
一个栈的栈底
26.用单链表表示的链式队列的队头在链表的
执行
(A) new->next=stack->next; stack=new; (B) new->next=stack; stack=new;
(C)new->next=stack;stack=new->next;(D) stack=new;stack->next=new->next;
6.链表仿真堆栈时,栈满的条件是
1.循环队列用数组 A[maxsize] 表示,下面哪个选项表示该循环队列队满
(A) rear==maxsize-1
(B) front==(rear+1)%maxsize
(C) rear-front==maxsize (D) rear-front==maxsize-1
2.元素的入栈序列是 a,b,c,d,则栈的不可能的输出序列是
(A) top<maxsize-1 (B) top==NULL (C) 没有限制 (D) top<0
7.下列哪种数据结构常用于函数调用
(A) 堆栈 (B) 队列 (C) 链表 (D) 数组
8.下列哪一段程序恰可将寄存器 A,B 的内容对调
(A) push A push B pop A pop B
(B) push A push B pop B pop A
和18在具有n个单元的循环队列中队满时共有个元素表示入栈操作x表示出栈操作若元素入栈顺序为1234为了得到1342出栈顺序相应的s19用下标0开始的n元数组实现循环队列时为实现下标变量m后在数组有效下标范围内循环可采用的表达式是m20
一、判断 1.发生在栈中所有插入与删除元素的操作,均发生在表的同一端 2.队列中所有的插入操作都发生在表的一端,删除则发生在表的另一端 3.栈具有先进先出的特性 4.队列为先进后出的结构 5.栈用于实现子程序调用 6.队列必须用数组来表示 7.栈必须用数组来表示 8.队列用于操作系统中的作业调度 9.线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。 10.在表结构中最常用的是线性表,栈和队列不太常用。 11.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。 12.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。 13.栈和链表是两种不同的数据结构。 14.栈和队列是一种非线性数据结构。 15.栈和队列的存储方式既可是顺序方式,也可是链接方式。 16.两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈 底分别设在这片内存空间的两端。 17.队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。 18.一个栈的输入序列是 12345,则栈的输出序列不可能是 12345。 19.栈和队列都是限制存取点的线性结构。( )
33. 一个队列(数组仿真,最多元素为 MaxSize)下列哪个选项表示了队列空间全部被利 用?
A. rear – front == MaxSize
B. rear – front == MaxSize –1
C. rear == front
D. rear + 1 == front 34.判定一个循环队列(数组仿真,最多元素为 MaxSize)为空的条件是?