栈和队列练习题.docx
《栈和队列练习题.docx》由会员分享,可在线阅读,更多相关《栈和队列练习题.docx(4页珍藏版)》请在三一文库上搜索。
1、选择题:1、设abcdef以所给的次序进栈,若在进栈操作时,允许退栈操作,则下面得不到的序列为(D)。AfedcbaB.bcafedC.dcefbaD.cabdef2、若已知一个栈的入栈序列是1,2,3,口其输出序列为p1,p2,p3,,pN,若pN是n,则pi是(D)。A.iB.n-iC.n-i+1D.不确定3、设计一个判别表达式中左,右括号是否配对出现的算法,采用(D)数据结构最佳。A.线性表的顺序存储结构B.队列C.线性表的链式存储结构D.栈4、用链接方式存储的队列,在进行删除运算时(D)。A.仅修改头指针B.仅修改尾指针C.头、尾指针都要修改D.头、尾指针可能都要修改5、递归过程或函数
2、调用时,处理参数及返回地址,要用一种称为(C)的数据结构。A.队列B.多维数组C.栈D.线性表6、假设以数组Am存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为(A)。A(rear-front+m)%mBrear-front+1C(front-rear+m)%mD(rear-front)%m7、若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少(B)A.1和5B.2和4C.4和2D.5和18、最大容量为n的循环队列,队尾指针是rear,队头是front,
3、则队空的条件是(A)。A.(rear+1)MODn=frontB.rear=frontCrear+1=frontD.(rear-l)MODn=front9、栈和队列的共同点是(C)。A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点10、设栈S和队列Q的初始状态为空,元素el,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是(C)。A6B.4C.3D.2判断题:栈和队列都是限制存取点的线性结构。()消除递归不一定需要使用栈,此说法()任何一个递归过程都可以转换成非递归过
4、程。()两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。()名词解释:栈队列循环队列(1)什么是递归程序(2)递归程序的优、缺点是什么( 3) 递归程序在执行时,应借助于什么来完成( 4) 递归程序的入口语句、出口语句一般用什么语句实现算法题:1、已知数组a,有n个元素,用递归实现以下算法:求和,求最大值,求平均数。判断是否为一个递增数组。大则继续,否则返回false结束:2、试将下列递归过程改写为非递归过程。voidtest(int*sum)intx;scanf(“%d”,&x);if(x=0)*sum=0elsetest(sum);
5、*sum+=x;printf(%d,*sum);3、请利用两个栈S1和S2来模拟一个队列。已知栈的三个运算定义如下:PUSH(ST,优素x入ST栈;POP(ST,&x)ST栈顶元素出栈,赋给变量x;Sempty(ST)判断ST栈是否为空。那么如何利用栈的运算来实现该队列的三个运算:enqueue:插入一个元素入队列;dequeue:删除一个元素出队列;queue_empty:判断队列为空。(请写明算法的思想及必要的注释,不需要代码实现)题目分析栈的特点是后进先出,队列的特点是先进先出。所以,用两个栈si和s2模拟一个队列时,si作输入栈,逐个元素压栈,以此模拟队列元素的入队。当需要出队时,将栈
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 队列 练习题
链接地址:https://www.31doc.com/p-14590704.html