【问题标题】:How does one replace last element of full stack with new element? (java)如何用新元素替换完整堆栈的最后一个元素? (爪哇)
【发布时间】:2021-05-02 11:58:19
【问题描述】:
public class ourStack1 {
    private int elements[];
    private int index;      // indicate the next position to put a new data
    private int size;
    
    public ourStack1() {
        elements = new int[10];
        index = 0;
        size = 0;
    }
    
    public void push(int value) {
        if(size == 10) {
            System.out.println("Stack is full, no push");
            return;
        }
        elements[index] = value;
        ++index;
        ++size;
    }
    
    public int pop() {
        if(size == 0) {
            System.out.println("Stack is empty, no pop");
            return -1;
        }
        int temp = elements[index - 1];
        --index;
        --size;
        return temp;
    }
    
    public int peek() {
        if(size == 0) {
            System.out.println("Stack is empty, no peek");
            return -1;
        }
        return elements[index - 1];
    }
    
    /*
    public int mySize() {
        // you know how to do this
    }
    */
    
    public static void main(String[] args) {
        ourStack1 x = new ourStack1();
        for(int i = 0; i < 10; ++i)
            x.push(i);
        for(int i = 0; i < 10; ++i)
            System.out.println(x.pop());
    }
}

我对如何覆盖添加到完整堆栈的最后一个元素感到困惑。我想添加元素来替换最后一个元素,同时不超过数组大小[10]

【问题讨论】:

  • 我对编码很陌生,我目前是一名在网上学习苦苦挣扎的大学生。
  • “我对如何覆盖添加到完整堆栈的最后一个元素感到困惑。”如果我理解正确,您想替换堆栈“顶部”的元素。在这种情况下,您可以简单地弹出当前顶部元素,然后推送新元素。如果这不是您的意思,请edit您的问题并添加有关您面临的问题的更多详细信息。
  • @pshemo 是的,你是正确的!这是我的问题。
  • 然后就像我说的,看起来你只需要调用yourStack.pop(); 之类的东西,然后再调用yourStack.push(yourNewValue);
  • 我会在给定的代码中把它放在哪里?道歉就像我说我是在线学习的一年级学生。这很难,但非常感谢你的帮助@pshemo

标签: java arrays stack


【解决方案1】:
public void replaceLast(int value) {
  if (this.size > 0) {
    this.pop();
  }
  this.push(value);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多