全国自考数据结构导论(栈和队列)模拟试卷1
-
35. 如果希望循环队列中的元素都能得到利用,则需要设置一个标志域tag,并以tag的值为0或1来区分尾指针和头指针值相同时的队列状态是“空”还是“满”。试编写与此结构相应的入队列和出队列的算法。
-
33. 在栈顶指针为HS的链栈中,写出计算该链栈中结点个数的函数。
-
34. 设从键盘输入一整数的序列:a1,a2,a3,…an,试编写算法实现:用栈结构存储输入的整数,当ai≠一1时,将ai进栈;当ai=一1时,输入栈顶整数并出栈。算法应对异常情况(如栈满等)给出相应的信息。
-
32. 试写出一个判别表达式中开、闭括号是否配对出现的算法。
-
31. 用一个循环单链表表示队列,该队列只设一个队尾指针rear,不设队首指针。试编写算法,完成入队、出队操作。
-
30. 借助栈(可用栈的基本运算)来实现单链表上的逆置运算。
-
26. 从现实生活中举例说明栈和队列的特征。
-
28. 设有编号为A,B,C,D的四辆列车,顺序进入一个栈式结构的站台,试写出这四辆列车开出车站的所有可能的顺序。
-
25. 表达式d/(b—c)+a的后缀表达式是_______。
-
24. 对于栈和队列,无论它们采用顺序存储结构还是链式存储结构,进行插入和删除操作的时间复杂度都是____。
-
22. 已知链队列Q的头、尾指针分别是front和rear,则出队操作是:p=Q一>front;_______;free(p)。
-
23. 一般情况下,将递归算法转化成等价的非递归算法应该设置_______。
-
21. 对带有头结点的链队列lq,判定队列中只有一个数据元素的条件是_______。
-
20. 已知用数组sq[50]存放循环队列的元素,且头指针和尾指针分别为19和2,则该队列的当前长度为_______。
-
19. 判别循环队列空和满的方法有_______、_______和_______。
-
18. 在一个循环队列Q中,判断队空的条件为_______,判断队满的条件为______。
-
16. 栈的逻辑特点是_____,队列的逻辑特点是______;二者的共同点是只允许在它们的______处插入和删除数据元素;其中_________可以作为实现递归函数调用的一种数据结构。
-
17. 允许在一端插入,在另一端删除的线性表称为_________。插入的一端为________,删除的一端为_______。
-
14. 如果以链表作为栈的存储结构,则退栈操作时________。
- A.必须判别栈是否满
- B.判别栈元素的类型
- C.必须判别栈是否空
- D.对栈不作任何判别
-
15. 前缀表达式“一2+8/6 3”的运算结果是_________。
- A.1
- B.4
- C.8
- D.16
-
11. 若链队列的队头指针和队尾指针分别为front和rear,则从队列中删除一个结点的操作是_______。
- A.p=front;rear=p一>next;free(p);
- B.p=rear;front=p;free(p);
- C.p=front;front=P一>next;free(p);
- D.p=rear;front=P一>next;free(p);
-
12. 输入序列为ABC,要变为CBA,经过的栈操作为_______。
- A.push,pop,push,pop,push,pop
- B.push,push,push,pop,pop,pop
- C.push,push,pop,pop,push,pop
- D.push,pop,push,push,pop,pop
-
13. 设有一顺序栈S,元素S1,S2,S3,S4,s5,S6依次进栈,如果6个元素出栈的顺序是s2,s3,S4,S6,s5,s1,则栈的容量至少应该是_________。
- A.2
- B.3
- C.4
- D.5
-
10. 设数组A[0,m]作为循环队列sq的存储空间,front为队头指针,rear为队尾指针,则执行入队操作的语句是_____。
- A.sq.front=(sq.front+1)%m
- B.sq.front=(sq.front+1)%(m+1)
- C.sq.rear=(sq.rear+1)%m
- D.sq.rear=(sq.rear+1)%(m+1)
-
9. 若以数组a[k]存放循环队列的元素,则当循环队列满时,队列中有______个元素。
- A.2k
- B.k+1
- C.k
- D.k一1
-
7. 假定一个循环队列的队头和队尾指针分别为P和q,则判断队空的条件为_________。
- A.p==0
- B.p+1==q
- C.q+1==p
- D.p==q
-
8. 若以数组a[8]存放循环队列的元素,且当前队尾指针rear的值为0,队头指针front的值为3。当从队列中出队两个元素,再人队一个元素后,rear和front的值分别为_______-。
- A.7和1
- B.1和7
- C.5和1
- D.1和5
-
5. 设有一顺序栈已含3个元素,如下图所示,元素a4正等待进栈。那么下列4个序列中不可能出现的出栈序列是_______。
- A.a3,a1,a4,a2
- B.a3,a2,a4,a1
- C.a3,a4,a2,a1
- D.a4,a3,a2,a1
-
6. 一个队列的入队序列是“d1,d2,d3,d4,”则队列的出队顺序是_______
- A.d4,d3,d2,d1
- B.d1,d2,d3,d4
- C.d1,d4,d3,d2
- D.d3,d2,d4,d1
-
4. 从栈顶指针为top的链栈中删除一个结点,并将被删结点的值保存到m中,其操作步骤为______。
- A.m=top一>data;top=top一>next;
- B.top=top一>next;m=top一>data;
- C.m=top;top=top一>next;
- D.m=top一>data;
-
3. 链栈与顺序栈相比,有一个较明显的优点是( )。
- A.通常不会出现栈满的情况
- B.通常不会出现栈空的情况
- C.插入操作更加方便
- D.删除操作更加方便
-
2. 一个栈的人栈序列为“abcde”,则以下不可能的出栈序列是______。
- A.bcdae
- B.edacb
- C.bcade
- D.aedcb
-
1. 栈的顺序表示中,用top表示栈顶指针,那么栈空的条件是______。
- A.top==STACKSIZE
- B.top==1
- C.top==0
- D.top==1