Java實現簡單的資料結構(三)
阿新 • • 發佈:2018-11-15
(3)Stack
package com.coding.basic; import org.junit.Test; public class Stack { private ArrayList elementData = new ArrayList(); /** * 壓棧方法 * * @param o */ public void push(Object o) { if (o != null) elementData.add(o); } /** * 彈棧方法 * * @return */ public Object pop() { Object result = elementData.remove(elementData.size() - 1); return result; } /** * 檢視棧頂物件 * * @return */ public Object peek() { Object result = elementData.get(elementData.size() - 1); return result; } /** * 判斷是否為空 * * @return */ public boolean isEmpty() { return elementData.size() == 0; } /** * 獲取棧的長度 * * @return */ public int size() { return elementData.size(); } /*------------------------------------------------------單元測試----------------------------------------------------*/ /** * push(Object obj)方法測試 */ @Test public void TestPushFunction() { Stack stack = new Stack(); for (int x = 0; x < 100; x++) { stack.push(x); } } /** * peek()方法測試 */ @Test public void TestPeekFunction() { Stack stack = new Stack(); for (int x = 0; x < 100; x++) { stack.push(x); } for (int x = 0; x < stack.size(); x++) { System.out.println(x + ":" + stack.peek()); } } /** * pop()方法測試 */ @Test public void TestPopFunction() { Stack stack = new Stack(); for (int x = 0; x < 100; x++) { stack.push(x); } System.out.println("before:" + stack.size()); for (int x = 0; x < stack.size();) { System.out.println(stack.pop()); } System.out.println("after:" + stack.size()); } }