借助于队列能够将含有 n 个数据元素的栈逆置, 比如栈 S 中的元素为{a, b, c}逆置后变成{c, b, a}。 试简述你的解决方案。

借助于队列能够将含有 n 个数据元素的栈逆置, 比如栈 S 中的元素为{a, b, c}逆置后变成{c, b, a}。 试简述你的解决方案。


【正确答案】:

先将栈中元素依次出栈并入队列,然后使该队列元素依次出队列并进入栈。


【题目解析】:

栈的修改原则是后进先出;队列的修改原则是先进先出。

故栈 S 中的元素为{a, b, c}出栈后为{c,b,a}。接着{c,b,a}入队列,再出队列还为{c,b,a}。再入栈{c,b,a},实现了栈逆置。


Top