JavaScript 實作資料結構 – Stack 篇

Stack 以中文直翻的話,就是堆疊,可以理解成一直堆東西上去的感覺。 大家應該都有去大賣場的經驗吧? 如果有去過 Costco 應該更能體會貨櫃的 fu。 一脫拉庫的貨物一個一個由低到高,層層疊疊蓋上去。 「其實蠻像蓋飯的阿。」 「我看倒像一塊塊綠豆糕呢。」 堆疊的應用之處就像是程式語言中的 Compiler 和記憶體中貯存變數阿,遞迴阿,方法呼叫阿。 進一步來說,Stack 是種 FILO ( First In Last Out )的結構形式。 也就是說,資料若是最晚進去的,將會是最快出來的。 哀,人生有時候也是這樣不公平的吧,最晚出發的卻是最快抵達終點的。 不管啦,試著用 JavaScript 的語法實作看看堆疊吧。 先宣告這個類別吧:

當然你還需要一個陣列來儲存這些元素:

再來就是方法要先定義出來。 push(element): 新增一個元素到堆疊中。 pop( ): 從堆疊頂部移除元素,其值將會被 return 回來。 peek( ): 傳回堆疊頂部的元素,單純查看的動作。 isEmpty( ): 堆疊若為空則 true, 否則返回 false。 clean( ): 清除堆疊中的所有元素。 size( ): 傳回堆疊中的所有元素個數,類似於 Array …