数据结构 第3章 栈和队列练习题

上传人:wm****3 文档编号:40892714 上传时间:2018-05-27 格式:DOC 页数:12 大小:106.50KB
返回 下载 相关 举报
数据结构 第3章  栈和队列练习题_第1页
第1页 / 共12页
数据结构 第3章  栈和队列练习题_第2页
第2页 / 共12页
数据结构 第3章  栈和队列练习题_第3页
第3页 / 共12页
数据结构 第3章  栈和队列练习题_第4页
第4页 / 共12页
数据结构 第3章  栈和队列练习题_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《数据结构 第3章 栈和队列练习题》由会员分享,可在线阅读,更多相关《数据结构 第3章 栈和队列练习题(12页珍藏版)》请在金锄头文库上搜索。

1、第 3 章 栈和队列一一 选择题选择题 1. 对于栈操作数据的原则是( ) 。 A. 先进先出 B. 后进先出 C. 后进后出 D. 不分顺序 2. 在作进栈运算时,应先判别栈是否( ),在作退栈运算时应先判别栈是否( )。 当栈中元素为 n 个,作进栈运算时发生上溢,则说明该栈的最大容量为( )。 为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应 将两栈的 ( )分别设在这片内存空间的两端,这样,当( )时,才产生上溢。 , : A. 空 B. 满 C. 上溢 D. 下溢 : A. n-1 B. n C. n+1 D. n/2 : A. 长度 B. 深度 C.

2、 栈顶 D. 栈底: A. 两个栈的栈顶同时到达栈空间的中心点. B. 其中一个栈的栈顶到达栈空间的中心点.C. 两个栈的栈顶在栈空间的某一位置相遇.D. 两个栈均不空,且一个栈的栈顶到达另一个栈的栈底. 3. 一个栈的输入序列为 123n,若输出序列的第一个元素是 n,输出第 i(10) ? x* f(x-1):2);int i ;i =f(f(1); A2 B. 4 C. 8 D. 无限递归 19. 表达式 a*(b+c)-d 的后缀表达式是( )。 Aabcd*+- B. abc+*d- C. abc*+d- D. -+*abcd 20. 表达式 3* 2(4+2*2-6*3)-5 求值

3、过程中当扫描到 6 时,对象栈和算符栈为( ) ,其 中为乘幂 。 A. 3,2,4,1,1;(*(+*- B. 3,2,8;(*- C. 3,2,4,2,2;(*(- D. 3,2,8;(*(- 21. 设计一个判别表达式中左,右括号是否配对出现的算法,采用( )数据结构最佳。A线性表的顺序存储结构 B. 队列 C. 线性表的链式存储结构 D. 栈 22. 用链接方式存储的队列,在进行删除运算时( ) 。 A. 仅修改头指针 B. 仅修改尾指针 C. 头、尾指针都要修改 D. 头、尾指针 可能都要修改 23. 用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结 点,

4、则在进行删除操作时( )。 A仅修改队头指针 B. 仅修改队尾指针 C. 队头、队尾指针都要修改 D. 队头,队尾指针都可能要修改 24. 递归过程或函数调用时,处理参数及返回地址,要用一种称为( )的数据结构。 A队列 B多维数组 C栈 D. 线性表 25. 假设以数组 Am存放循环队列的元素,其头尾指针分别为 front 和 rear,则当前队列中的元素个数为( ) 。 A(rear-front+m)%m Brear-front+1 C(front-rear+m)%m D(rear-front)%m 26. 循环队列 A0.m-1存放其元素值,用 front 和 rear 分别表示队头和队

5、尾,则当前队 列中的元素数是( )。A. (rear-front+m)%m B. rear-front+1 C. rear-front-1 D. rear- front 27. 循环队列存储在数组 A0.m中,则入队时的操作为( ) 。A. rear=rear+1 B. rear=(rear+1) mod (m-1)C. rear=(rear+1) mod m D. rear=(rear+1)mod(m+1) 28. 若用一个大小为 6 的数组来实现循环队列,且当前 rear 和 front 的值分别为 0 和 3, 当从队列中删除一个元素,再加入两个元素后,rear 和 front 的值分别

6、为多少?( ) A. 1 和 5 B. 2 和 4 C. 4 和 2 D. 5 和 1 29. 已知输入序列为 abcd 经过输出受限的双向队列后能得到的输出序列有( )。A. dacb B. cadb C. dbca D. bdac E. 以上答案都不对 30. 若以 1234 作为双端队列的输入序列,则既不能由输入受限的双端队列得到,也不能由 输出受限的双端队列得到的输出序列是( )。A. 1234 B. 4132 C. 4231 D. 4213 31. 最大容量为 n 的循环队列,队尾指针是 rear,队头是 front,则队空的条件是 ( ) 。A. (rear+1) MOD n=fr

7、ont B. rear=front Crear+1=front D. (rear-l) MOD n=front 32. 栈和队列的共同点是( ) 。 A. 都是先进先出 B. 都是先进后出 C. 只允许在端点处插入和删除元素 D. 没有共同点 33. 栈的特点是( ),队列的特点是( ),栈和队列都是( ) 。若进栈序 列为 1,2,3,4 则( )不可能是一个出栈序列(不一定全部进栈后再出栈) ;若进队 列的序列为 1,2,3,4 则( )是一个出队列序列。 , : A. 先进先出 B. 后进先出 C. 进优于出 D. 出优于进 : A.顺序存储的线性结构 B.链式存储的线性结构 C.限制存

8、取点的线性结构 D.限制存取点的非线性结构, : A. 3,2,1,4 B. 3,2,4,1 C. 4,2,3,1 D. 4,3,2,1 F. 1,2,3,4 G. 1,3,2,4 34. 栈和队都是( ) A顺序存储的线性结构 B. 链式存储的非线性结构 C. 限制存取点的线性结构 D. 限制存取点的非线性结构 35. 设栈 S 和队列 Q 的初始状态为空,元素 e1,e2,e3,e4,e5 和 e6 依次通过栈 S,一个 元素出栈后即进队列 Q,若 6 个元素出队的序列是 e2,e4,e3,e6,e5,e1 则栈 S 的容量至 少应该是( )。 A 6 B. 4 C. 3 D. 2 36.

9、 用单链表表示的链式队列的队头在链表的( )位置。 A链头 B链尾 C链中 37. 依次读入数据元素序列a,b,c,d,e,f,g进栈,每进一个元素,机器可要求下一 个元素进栈或弹栈,如此进行,则栈空时弹出的元素构成的序列是以下哪些序列? Ad ,e,c,f,b,g,a B. f,e,g,d,a,c,b C. e,f,d,g,b,c,a D. c,d,b,e,f,a,g二二 判断题判断题 1. 消除递归不一定需要使用栈,此说法( ) 2. 栈是实现过程和函数等子程序所必需的结构。 ( ) 3. 两个栈共用静态存储空间,对头使用也存在空间溢出问题。 ( ) 4两个栈共享一片连续内存空间时,为提高

10、内存利用率,减少溢出机会,应把两个栈的栈 底分别设在这片内存空间的两端。 ( ) 5. 即使对不含相同元素的同一输入序列进行两组不同的合法的入栈和出栈组合操作,所得 的输出序列也一定相同。 ( ) 6. 有 n 个数顺序(依次)进栈,出栈序列有 Cn 种,Cn=1/(n+1)*(2n)!/(n!)*(n!)。 ( ) 7. 栈与队列是一种特殊操作的线性表。 ( ) 8. 若输入序列为 1,2,3,4,5,6,则通过一个栈可以输出序列 3,2,5,6,4,1. ( ) 9. 栈和队列都是限制存取点的线性结构。 ( ) 10若输入序列为 1,2,3,4,5,6,则通过一个栈可以输出序列 1,5,4

11、,6,2,3。 ( ) 11. 任何一个递归过程都可以转换成非递归过程。 ( ) 12. 只有那种使用了局部变量的递归过程在转换成非递归过程时才必须使用栈。 ( ) 13. 队列是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。 ( ) 14. 通常使用队列来处理函数或过程的调用。 ( ) 15. 队列逻辑上是一个下端和上端既能增加又能减少的线性表。 ( ) 16. 循环队列通常用指针来实现队列的头尾相接。( ) 17. 循环队列也存在空间溢出问题。 ( ) 18. 队列和栈都是运算受限的线性表,只允许在表的两端进行运算。 ( ) 19. 栈和队列都是线性表,只是在插入和删

12、除时受到了一些限制。 ( ) 20. 栈和队列的存储方式,既可以是顺序方式,又可以是链式方式。 ( ) 三三 填空题填空题 1栈是_的线性表,其运算遵循_的原则。 2_是限定仅在表尾进行插入或删除操作的线性表。 3. 一个栈的输入序列是:1,2,3 则不可能的栈输出序列是_。 4. 设有一个空栈,栈顶指针为 1000H(十六进制),现有输入序列为 1,2,3,4,5,经过 PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH 之后,输出序列是_,而栈顶指针值是 _H。设栈为顺序栈,每个元素占 4 个字节。 5. 当两个栈共享一存储区时,栈利用一维数组 stack(1,n)表示,两栈

13、顶指针为 top1与 top2,则当栈 1 空时,top1为_,栈 2 空时 ,top2为_,栈满时为 _。 6两个栈共享空间时栈满的条件_。 7在作进栈运算时应先判别栈是否_(1)_;在作退栈运算时应先判别栈是否_(2)_;当栈中 元素为 n 个,作进栈运算时发生上溢,则说明该栈的最大容量为_(3)_。 为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的空间时, 应将两栈的_(4)_分别设在内存空间的两端,这样只有当_(5)_时才产生溢出。8. 多个栈共存时,最好用_作为存储结构。 9用 S 表示入栈操作,X 表示出栈操作,若元素入栈的顺序为 1234,为了得到 1342 出栈 顺序,相应的 S 和 X 的操作串为_。 10. 顺序栈用 data1.n存储数据,栈顶指针是 top,则值为 x 的元素入栈的操作是 _。 11表达式 23+(12*3-2)/4+34*5/7)+108/9 的后缀表达式是_。 12. 循环队列的引入,目的是为了克服_。 13用下标 0

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号