变量
top = -1;(后续查看)
maxSize
arr
思路:
先进后出
代码
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Stack as = new Stack(4);
char k = ' ';
boolean loop = true;
Scanner sc = new Scanner(System.in);
while(loop) {
System.out.println("show:显示栈");
System.out.println("pop:出栈");
System.out.println("push:入栈");
System.out.println("退出");
k = sc.next().charAt(0);
switch(k) {
case 's':
as.show();
break;
case 'o':
int value = as.pop();
System.out.println(value);
break;
case 'i':
System.out.print("输入一个数:");
int i = sc.nextInt();
as.push(i);
break;
case 'e':
sc.close();
loop = false;
break;
default:
break;
}
}
}
}
class Stack{
private int top = -1;
private int[] arr;
private int maxsize;
public Stack(int nums) {
arr = new int[nums];
this.maxsize = nums;
}
//栈空
public boolean isEmpty() {
return this.top == -1;
}
//栈满
public boolean isFull() {
return this.top == this.maxsize - 1;
}
//压栈
public void push(int val) {
if(isFull()) {
System.out.print("栈满!");
return;
}
top++;
arr[top] = val;
}
//弹栈
public int pop() {
if(isEmpty()) {
System.out.print("栈空!");
return -1;
}
int val = arr[top];
top--;
return val;
}
//查看栈顶元素
public int peak() {
if(isEmpty()) {
System.out.print("栈空!");
return -1;
}
return arr[top];
}
public void show() {
if(isEmpty()) {
System.out.print("栈空!");
return;
}
for(int i = top; i >= 0; i--) {
System.out.println(arr[i]);
}
}
}