对于一项任务,我必须编写一个打印堆栈的方法,这部分很简单
public void print(stack s)
{
while(!isEmpty())
{
System.out.println(s.peek());
s.pop();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,在打印堆栈后,我的任务是打印堆栈上的底部元素,因为我在打印方法中使用了 s.pop() ,所以不再存在该元素。这是我用于打印底部元素的代码。
public void bottom(stack s)
{
if(isEmpty())
{
System.out.println("Stack is empty");
}
else
{
System.out.println(stackArray[0]);
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:我应该如何修改打印方法,这样我就不必从堆栈中弹出元素?或者是否有另一种方法可以使堆栈在使用 print 方法后仍然保存我的元素?
根据要求,这是我们在课程中使用的堆栈(大部分是荷兰语):
public class MyStack
{
protected Object[ ] stackArray;
protected int top;
private int grootte;
private static final int DEFAULT_GROOTTE = 10;
public MyStack( )
{
grootte = DEFAULT_GROOTTE;
stackArray = new Object[grootte];
top = 0;
}
public boolean isEmpty( )
{
if (top == 0) …Run Code Online (Sandbox Code Playgroud)