[英]Is linkedList a stack? what is the best implementation of stack data structure
我注意到 linkedList 有一些方法,比如 pop 和 push。 通常,如果我想使用堆棧(FILO)的特性,那么 linkedList 會是最好的選擇嗎?
LinkedList
可以工作,實際上實現了JDK中最像堆棧的接口Deque
。
ArrayDeque
是另一個主要的非線程安全實現,如果您只需要堆棧操作, 它可能更有效 。 Deque
的上述鏈接列出了其他兩個JDK提供的實現,它們是線程安全的。
實現堆棧的方法沒有好壞之分,但它們具有不同的優點。
基於鏈表的實現使您可以更靈活地控制容器的容量,因為理論上您總是可以向其中添加更多元素。 基於數組的堆棧在容量方面更受限制。 但是,鏈表意味着更多的空間開銷,因為您需要存儲對其他節點的引用。
在性能方面,使用堆棧您只能訪問頂部元素,這意味着您不需要數組為您提供鏈表的隨機訪問功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.