堆疊(Stack)

Da-Wei Chiang

大綱

  • 何謂堆疊
  • 圖例堆疊
    • 堆疊的結構
    • 新增元素
    • 刪除元素
  • 實作練習
  • 堆疊的時間複雜度

何謂堆疊

  • 堆疊是一種線性結構, 英文稱為Stack
  • 堆疊讀取資料, 相當於將資料從堆疊中刪除
  • 將資料放入堆疊中稱為push
  • 將資料從堆疊中取出稱為pop
  • 整個Stack的存取資料過程具有「後進先出(last in first out)」的特性

圖例堆疊

  • 堆疊的結構
  • 新增堆疊元素
  • 讀取(刪除)堆疊元素

堆疊的結構

  • 堆疊的結構就像一個箱子, 等待資料進入

新增堆疊元素(push)

讀取堆疊元素(pop)

  • first in last out

練習

  • 使用arraylist撰寫一個名為Stack的類別, 模擬Stack的結構
  • 該類別具備新增元素(push)、讀取元素(pop)、查看Stack元素個數、查看整個Stack元素
  • 建構Stack的物件, 測試使用四種方法

堆疊的時間複雜度

  • push:O(1)
  • pop:O(1)
  • search:O(n)