概述
- 栈
属于线性数据结构
的一种,采用顺序存储
的方式,具有先进后出
,后进先出
的原则,其时间复杂度
是O(1)
,其物理地址是连续的,找到头节点就可以连续读取出完整数据
入栈
出栈
栈顶
栈底
实现栈
public class Test003 {
private Object[] arr;
public Test003() {
this.arr = new Object[0];
}
public void push(Object o) {
Object[] objects = new Object[arr.length + 1];
for (int i = 0; i < arr.length; i++) {
objects[i] = arr[i];
}
objects[arr.length] = o;
arr = objects;
}
public Object pop() {
if (arr.length <= 0){
throw new RuntimeException("栈内并无数据");
}
Object o = arr[arr.length - 1];
Object[] objects = new Object[arr.length - 1];
for (int i = 0; i < objects.length; i++) {
objects[i] = arr[i];
}
arr = objects;
return o;
}
public static void main(String[] args) {
Test003 test003 = new Test003();
test003.push("01");
test003.push("02");
test003.push("03");
test003.push("04");
System.out.println(test003.pop());
System.out.println(test003.pop());
System.out.println(test003.pop());
System.out.println(test003.pop());
}
}
打印结果