栈: 先进后出
实现方式一般可以通过两种方式解决
第一种是数组
第二种是链表
我们看下如何通过数组实现
/**
* 通过数组实现栈
*/
public class StackByArr {
public static void main(String[] args) {
Stack stack = new Stack(5);
stack.push("1");
stack.push("2");
stack.push("3");
System.out.println(JSONObject.toJSONString(stack.arr));
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(JSONObject.toJSONString(stack.arr));
stack.push("4");
System.out.println(JSONObject.toJSONString(stack.arr));
}
/**
* 数组实现栈
*/
static class Stack {
private int len;
private int count;
private String[] arr;
private Stack(int len) {
this.len = len;
arr = new String[len];
}
public boolean push(String data) {
if (count >= len) {
return false;
}
arr[count] = data;
count++;
return true;
}
public String pop() {
if (count <= 0) {
return null;
}
String data = arr[count - 1];
count--;
arr[count] = null;
return data;
}
}