,c语言,栈队列问题,为什么要两个栈,分别是干什么用的

 我来答
百度网友de32a0e
2013-12-09 · TA获得超过241个赞
知道小有建树答主
回答量:74
采纳率:0%
帮助的人:64.4万
展开全部
想象空中有两个水杯,水杯的口对着另一个水杯的口。【】 用左边的这个中括号组成的图形形容下吧,左括号是个水杯,即栈,右括号也是个水杯,也是栈。如果你想要提取队列中间的元素,是不是可以把队列中间这个元素到队首之间的所有元素压入左栈中,而把队列中间这个元素到队尾之间的所有元素压入右栈中,提取了这个元素后,再把右栈中元素压到左栈恢复成和原先顺序不变的队列呢,想想是不是很方便。~\(≧▽≦)/~
其实这个也linux shell中,通过上下按键便能调出最近的命令使用记录一样的原理
SpencerVelicue
2013-12-09 · 超过15用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:39.2万
展开全部
就是双栈可以实现一个队列。
你要进队列的时候,就进栈1,然后要出队列的时候,如果栈2为空,就把栈1的元素都出栈然后进入栈2,否则从栈2弹栈就可以了。
这样做是正确的。因为数进入栈1后,出栈是按照相反的顺序出栈的。但是进入栈2再出栈之后顺序再反一次,就正过来了。而栈1的元素每次导入栈2都是栈1排空,栈2在没有元素的过程中进行的,因此不会出现相互影响的问题,最后每次出栈的顺序都和入栈一样,就实现了一个队列的功能。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
18961444501
2013-12-09
知道答主
回答量:67
采纳率:0%
帮助的人:21.9万
展开全部
调整进出顺序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式