数据结构的一道题
设栈S和队列Q的初始状态为空,元素abcdefg依次进栈S。若每个元素出站后立即进去入队列Q,且7个元素出队顺序是bdcfeag则栈S的容量至少多少?这是数据结构的题。给...
设栈 S和队列Q的初始状态为空,元素 a b c d e f g依次进栈 S 。若每个元素出站后立即进去入队列Q ,且7个元素出队顺序是b d c f e a g则栈 S的容量至少多少? 这是数据结构的题。 给步骤详细点啊。答案是3
展开
2个回答
展开全部
首先明确几个概念:栈是先进后出,队列是先进先出;题目中指定了进栈顺序,但没说要连续进栈。(下面箭头图中右代表栈底,左代表栈顶,队列同样)
假如栈的容量是1,则第一个出栈的肯定是a,不符合;
假如栈的容量是2,则a、b进去,b出栈,c进栈,只能c先出栈,d不可能出队顺序在c前
假如栈的容量是3,分析过程如下:
①S:b→a,b出栈,Q:b,S:a
②S:d→c→a,d、c依次出栈,Q:c→d→b,S:a
③S:f→e→a,f、e、a依次出栈,Q:a→e→f→c→d→b,S:null
④S:g,g出栈,Q:g→a→e→f→c→d→b,S:null
Q中元素依次出队,即b→d→c→f→e→a→g
假如栈的容量是1,则第一个出栈的肯定是a,不符合;
假如栈的容量是2,则a、b进去,b出栈,c进栈,只能c先出栈,d不可能出队顺序在c前
假如栈的容量是3,分析过程如下:
①S:b→a,b出栈,Q:b,S:a
②S:d→c→a,d、c依次出栈,Q:c→d→b,S:a
③S:f→e→a,f、e、a依次出栈,Q:a→e→f→c→d→b,S:null
④S:g,g出栈,Q:g→a→e→f→c→d→b,S:null
Q中元素依次出队,即b→d→c→f→e→a→g
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询