Java Stack方法(multipop)初学java

Ben*_*zle 1 java methods stack

我正在尝试编写一个Java方法来从堆栈中预先形成"多重弹出".

它应该对stack对象执行"弹出"操作k次数.这就是我的想法,但它并不完全正确.有帮助吗?

public void multipop(int k) {
    while (top != null) {
        for (int i = 0; i <= k; i++) {
            this.pop();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

and*_*dri 6

  1. 你执行while循环直到堆栈耗尽,这可能不是你想要的.如果要检查堆栈中是否有元素,请使用if语句.
  2. 在循环中,您将从0迭代到k(包括0和k).这意味着如果k = 3,则经过0,1,2和3,因此调用this.pop()四次.
  3. 即使你更换whileif,你只检查是否有一个元素是在栈中,但你可以调用pop()多次.您应该在循环内部进行检查或将检查内部移动pop().
  4. 缩进是可怕的:)