栈和队列 应用题

本文详细介绍了栈和队列的概念及其应用,包括名词解释、循环队列的定义、栈的操作规则、栈与队列的输出序列分析,以及递归程序的相关知识。通过实例解析了如何判断栈操作序列的合法性,探讨了栈和队列在解决实际问题中的重要作用。
摘要由CSDN通过智能技术生成

四  应用题

1. 名词解释:栈。【燕山大学 1999 一、1(2分)】【吉林工业大学 1999 一、3(2分)】解:符合先进后出的线性表

2. 名词解释:队列【大连海事大学  1996  一、6 ( 1分 )】解:符合先进先出的线性表

3. 什么是循环队列?【哈尔滨工业大学 2001 三、2(3分)】【河南大学 1998 一、4(3分)】

为充分利用向量空间,克服"假上溢"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。 存储在其中的队列称为循环队列(Circular Queue)...

4. 假设以S和X分别表示入栈和出栈操作,则对初态和终态均为空的栈操作可由S和X组成的序列表示(如SXSX)。

(1)试指出判别给定序列是否合法的一般规则。解:通常有两条规则。第一是给定序列中S的个数和X的个数相等;第二是从给定序列的开始,到给定序列中的任一位置,S的个数要大于或等于X的个数。

(2)两个不同合法序列(对同一输入序列)能否得到相同的输出元素序列?如能得到,请举列说明。解:可以得到相同的输出元素序列。例如,输入元素为A,B,C,则两个输入的合法序列ABC和BAC均可得到输出元素序列ABC。对于合法序列ABC,我们使用本题约定的S×S×S×操作序列;对于合法序列BAC,我们使用SS××S×操作序列。

【东南大学 1992 二(10分)】

5. 有5 个元素,其入栈次序为:A,B,C,D,E,在各种可能的出栈次序中,以元素C,D最先出栈(即C第一个且D第二个出栈)的次序有哪几个?【西南交通大学 2000 二、1】解:C,D,E,B,A和C,D,B,A,E和C,D,B,E,A

6. 如果输入序列为1 2 3 4 5 6,试问能否通过栈结构得到以下两个序列:4 3 5 6 1 2和1 3 5 4 2 6;请说明为什么不能或如何才能得到。【武汉交通科技大学 1996 二、3 (3分)】

解:输入序列为123456,不能得出435612,其理由是,输出序列最后两元素是12,前面4个元素(4356)得到后,栈中元素剩12,且2在栈顶,不可能栈底元素1在栈顶元素2之前出栈。

   得到135426的过程如下:1入栈并出栈,得到部分输出序列1;然后2和3入栈,3出栈,部分输出序列变为:13;接着4和5入栈,5,4和2依次出栈,部分输出序列变为13542;最后6入栈并退栈,得最终结果135426

 

7. 若元素的进栈序列为:A、B、C、D、E,运用栈操作,能否得到出栈序列B、C、A、E、D和D、B、A、C、E?为什么?【北京科技大学 1998  一、2】

解:能得到出栈序列BCAED,不能得到出栈序列DBACE。其理由为:若出栈序列以D开头,说明在D之前的入栈元素是ABC,三个元素中C是栈顶元素,BA不可能早于C出栈,故不可能得到DBACE出栈序列

8. 设输入序列为a,b,c,d,试写出借助一个栈可得到的两个输出序列和两个不能得到的输出序列。解:能得到的D,C,B,A和C,D,B,A不能得到:D,C,A,B和D,A,C,B

【北京科技大学 2001 一、4(2分)】

9. 设输入序列为2,3,4,5,6,利用一个栈能得到序列2,5,3,4,6吗?栈可以用单链表实现吗?

【山东师范大学 1996 五、4(2分)】解:不能得到序列25346。栈可以用单链表实现,这就是链栈。由于栈只在栈顶操作,所以链栈通常不设头结点。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值