栈是一种只允许在一端进行插入和删除操作的线性表,在表中只允许进行插入和删除的一端称为栈顶,另一端称为栈底。
栈的特点是:先进后出
数据一般存储在数组或链表中,所以实现栈可以用链表或数组。
我们用最简单的数组来实现,栈模型如下图所示:
代码实现
public class zhan {
//声明一个数组
private int[] arr = new int[10];
//声明头节点(入栈、出栈指针)
int f = 0;
//入栈
public void add(int value) {
//判断栈是否已满,满了扩容
if (f == arr.length) {
int[] brr = new int[arr.length * 2];
for (int i = 0; i < arr.length; i++) {
brr[i] = arr[i];
}
arr = brr;
}
arr[f] = value;
f++;
}
//出栈
public void get() {
if (f == 0) {
System.out.println("没数了");
return;
}
System.out.println(arr[--f]);
}
}