栈基础操作只需要一个辅助结点top,表示栈顶,初始化为-1
入栈操作
思路
- 先上移top,top++
- 压入数据,stack[top]=data
代码
public void push(int value) {
//先判断栈是否满
if(isFull()) {
System.out.println("栈满");
return;
}
top++;
stack[top] = value;
}
出栈操作
思路
- 先取出数据,value=stack[top]
- 再下移指针top,top–;
代码
public int pop() {
//先判断栈是否空
if(isEmpty()) {
//抛出异常
throw new RuntimeException("栈空,没有数据~");
}
int value = stack[top];
top--;
return value;
}
遍历栈
public void list() {
if(isEmpty()) {
System.out.println("栈空,没有数据~~");
return;
}
//需要从栈顶开始显示数据
for(int i = top; i >= 0 ; i--) {
System.out.printf("stack[%d]=%d\n", i, stack[i]);
}
}