【发布时间】: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