【发布时间】:2016-03-19 07:18:10
【问题描述】:
我有我的练习:使用一个额外的堆栈和一些额外的非数组变量来反转堆栈上的元素顺序。而我做了什么:
public void reverse() {
if (isEmpty()) {
throw new EmptyStackException();
}
while (!stack.isEmpty()) {
stack1.push(stack.pop());
}
stack = stack1;
}
我使用了一个额外的堆栈(stack1),可以在哪里使用额外的非数组变量?
【问题讨论】:
-
@duy-nguyen.se 你所做的已经足够好了。你还想要什么?
-
根据 Java API 文档 Stack 不应再使用。改用双端队列。您可以访问 Deque 的两端。
-
@aventurin 感谢您的信息。
-
为什么在空堆栈上抛出异常?反转一个空堆栈只会产生一个空堆栈:
if (isEmpty()) return;