棧的定義
- 棧是一種特殊的線性表,只能在一端進行操作
- 往棧中添加元素的操作,一般叫做push,入棧
- 從棧中移除元素的操作,一般叫做pop,出棧(只能移除棧頂元素,也叫做:彈出棧頂元素)
- 後進先出的原則,Last In First Out,LIFO
棧的接口設計
使用前面的ArrayList的作爲包,使用組合作爲基礎。
package chapter_03棧;
import java.util.ArrayList;
import java.util.List;
public class Stack<E> {
private List<E> list = new ArrayList<>();
public void clear() {
list.clear();
}
public int size() {
return list.size();
}
public boolean isEmpty() {
return list.isEmpty();
}
public void push(E element) {
list.add(element);
}
public E pop() {
return list.remove(list.size() - 1);
}
public E top() {
return list.get(list.size() - 1);
}
}
測試
package chapter_03棧;
public class Main {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
stack.push(11);
stack.push(22);
stack.push(33);
stack.push(44);
while (!stack.isEmpty()) {
System.out.println(stack.pop());
}
}
}