c语言,两个栈实现队列中的2个栈,是什么意思?两个链表?还是两个节点?

如题所述

原题的意思是:用两个栈实现一个队列的功能
数据结构的说明: 栈 :先入后出 FILO 队列:先入先出 FIFO 实现方式一,具体: 队列入列:栈A入栈;
举例:将A.B.C.D入列,从栈顶到栈底依次为:D C B A; 队列出列:判断栈元素个数是否为1,如为真,弹出;
如为假,栈A所有元素出栈POP,压入栈B;栈B栈顶元素POP;栈B所有元素压入栈A。
举例:栈A弹栈,栈B压栈,栈B从栈顶到栈底依次为: A B C D; 将栈顶元素A弹栈,将剩余元素压回栈A;栈A从栈顶到栈底依次为: B C D;
实现方式二,具体:
队列入列:判断栈元素个数是否为1,如为真,弹出;
如为假,栈A所有元素出栈POP,压入栈B;压入新元素到栈A;栈B所有元素压栈入栈A。
队列出列:栈A出栈;;
结束,总结:实现了队列的入队和出对操作。
用两个队列实现一个栈的功能
实现方式一,具体:
入栈:所有元素依次入队列A;
举例:将A.B.C.D入栈,从队列尾部到队列首部依次为:D C B A; 出栈:判断栈元素个数是否为1,如为真,队列A出列;
如为假,队列A所有元素出队列,入队列B,最后一个元素不入队列B,输出该元素;队列B所有元素入队列A;
举例:将D C B A出列,D输出来,C B A入队列B,最后返回到队列A。实现了后进先出。
实现方式二,具体: 入栈:和方式一出栈类似 出栈:和方式一入栈类似
结束,总结:实现了栈的入栈和出栈操作。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-09
我猜是用 栈实现队列功能。 就是给你俩个栈,怎么实现队列 的效果,先进先出。
既然栈已经给你。你只需要用2个栈 倒来倒去 就行了。比较容易实现。。

全部都用栈的方法push 和pop 就行了。

队列和栈是俩个并列的概念,没听说 队列里面有栈的。但是上面我说的是最常见的一道栈与队列的问题。追问

我只是不知道什么是栈???

追答

栈 是 一个存储数据的 玩意。 他的特点是 后进先出。 你可以想象成堆盘子。最先放(PUSH)的盘子在最低端。你想拿盘子(POP),就那最上边的。这就是栈的特点。

栈的既可以用 array 实现 也可以用链表实现。

本回答被网友采纳
第2个回答  2013-12-09
能把问题说的明白点不?
相似回答