2012-04-01 65 views
1

我正在通過實現一些數據結構來實踐ADT的知識,即使大多數已經存在。隨着堆棧,我讀過的很多書籍和其他文檔都談到了當您嘗試添加元素但堆棧已滿時堆棧拋出錯誤。在一個java實現(或任何其他)中,我是否應該特別跟蹤最大堆棧大小(來自構造函數),檢查是否已達到該大小,如果是,則拋出一個溢出異常? 還是不是這麼大?堆棧應該具有​​最大尺寸嗎?

+0

隊列或列表是否應具有最大大小? Stack * ADT *如何/爲什麼會有所不同? – 2012-04-01 05:42:30

回答

5

取決於堆棧的種類,但通常,如果堆棧是分配堆棧,大小無關緊要。

如果你的堆棧確實分配在堆棧上,那麼你應該保持它很小。

+0

如果堆棧爲空而您執行peek()或pop(),那麼應該拋出EmptyStackException或返回null? – 2012-04-01 05:30:53

+3

再一次,這取決於目的。對於學術練習,我會說一個例外是可取的,只要你也實現了empty()。 – 2012-04-01 05:32:33