事件捕獲和事件冒泡
阿新 • • 發佈:2021-10-10
import java.util.LinkedList; import java.util.Queue; public class Algorithm { public static void main(String[] args) { MyStack myStack = new MyStack(); for (int i = 0; i < 10; i++) { myStack.push(i); if (i % 2 == 0){ myStack.pop(); } System.out.println(myStack.top()); } } } class MyStack{ /** * 定義一個存放元素的佇列 */ Queue<Integer> q1; /** * 儲存棧頂元素 */ int topElement; public MyStack() { /** * Queue類是LinkedList類的父類 */ q1 = new LinkedList<>(); } public void push(int x) { q1.add(x); topElement = x; } public int pop() { /** * 定義一個輔助佇列,負責儲存除棧頂元素以外的所有元素 */ Queue<Integer> q2 = new LinkedList<>(); while (q1.size() > 1) { /** * 每次轉移元素之前,儲存一下當前的元素,最後一次儲存的值就是此次pop後的新棧頂元素 */ topElement = q1.peek(); q2.add(q1.remove()); } int tem = q1.remove(); q1 = q2; return tem; } public int top() { return topElement; } public boolean empty() { return q1.isEmpty(); } }