使用連結串列實現棧
阿新 • • 發佈:2021-07-10
前言
使用自定義連結串列實現棧,自定義連結串列的實現:連結串列
具體實現
- 棧介面
public interface Stack<T> { /** * 新增元素 * @param t */ void push (T t); /** * 元素出棧 * @return */ T pop(); /** * 檢視棧頂元素 * @return */ T peek(); /** * 獲取大小 * @return */ int getSize(); /** * 是否為空 * @return */ boolean isEmpty(); }
- 實現類
public class LinkedListStack<T> implements Stack<T> { /** * 連結串列 */ private LinkedList<T> list; /** * 構造方法 */ public LinkedListStack() { list = new LinkedList<>(); } /** * 新增元素 * @param t */ @Override public void push(T t) { list.addFirst(t); } /** * 元素出棧 * @return */ @Override public T pop() { return list.removeFirst(); } /** * 獲取棧頂元素 * @return */ @Override public T peek() { return list.getFirst(); } /** * 獲取大小 * @return */ @Override public int getSize() { return list.getSize(); } /** * 是否為空 * @return */ @Override public boolean isEmpty() { return list.isEmpty(); } /** * 重寫toString方法 * @return */ @Override public String toString() { StringBuilder res = new StringBuilder(); res.append("Stack: top "); res.append(list); return res.toString(); } public static void main(String[] args) { LinkedListStack<Integer> stack = new LinkedListStack<>(); for (int i = 0; i < 5; i++) { stack.push(i); System.out.println(stack); } stack.pop(); System.out.println(stack); } }