天天看點

哈哈,大家平時都有使用過浏覽器吧,是不是經常使用浏覽器的後退功能呢?

每一次後退,浏覽器都會回到上一個浏覽的網頁。大家有沒有想過這個後退操作的基本原理呢?

沒錯,就是用到了棧這個資料結構。

注意點:棧一定是線性表,但是線性表卻不一定是棧。從資料結構上,都是一組資料,按照有序的形式排列起來,但是線性表和棧對資料的操作是不相同的。

下面給出一個棧的接口定義

下面采用數組來實作一個棧,使用數組最大的缺點就是,堆棧所能容納的元素數量是有限個的,不能動态性增長(當然,可以通過程式設計實作)

輸出結果

哈哈,是不是很簡單呢?不過不要忽視堆棧的作用哦,這也是我們經常會使用到的資料結構呢。

下面使用節點來實作堆棧,也叫做鍊棧,接口不變,隻是内部實作改用節點類來實作。這種堆棧的優點是,沒有長度限制, 可以自由添加

輸出結果為:

總結:堆棧,不過是一種特殊的線性表,它的操作更加簡單。

下面給出java.util.stack

大家可以自己閱讀下源代碼,并不是很難

繼續閱讀