【发布时间】:2014-12-16 14:18:44
【问题描述】:
我想使用一个空栈 S 来检查队列 Q 是否包含元素 x,因此我的解决方案是将 Q 的元素复制到 S 并检查是否包含 x,但我还被要求将 S 元素返回到 Q再次和原来一样,这必须只使用 Q 和 S 而不使用任何其他 SL 数组来完成,所以我编写了这个算法:
Boolean found ← false
int element ← 0
While(Q is not empty)
element ← Q.dequeue()
if(element equal x)
found ← true
S.push(element)
While(S is not empty)
( elements back to Q) ?
卡在最后一步,如果我使用 Q.enqueue(S.pop) 那么 Q 中元素的顺序将被颠倒
【问题讨论】:
标签: java algorithm stack queue