我有一個簡單的問題:哪種數據結構是堆棧?它是一個靜態或動態的數據結構?我正在尋找答案,找不到它,因此我得到了我自己的「解釋」 - 我想,當你可以通過使用數組或鏈表來實現它時,它可以是......兩者都是?實施?我的推理是否有意義?哪種數據結構是堆棧?
2
A
回答
3
根據定義,靜態數據結構具有固定大小。如果您可以將堆棧的大小限制爲某個預定義的數量,那麼您的堆棧將成爲一個靜態數據結構。它的大小是它的存儲大小,加上堆棧指針或堆棧索引的大小,表示當前位置。
無限容量的堆棧是一個動態數據結構,無論其實現如何。它可以通過一個鏈接列表或一個數組來實現,該列表或數組在達到其容量時重新分配,但在添加或刪除數據時,此類堆棧的大小會發生變化。
0
嗯,首先,Stack本身就是一個數據結構。堆棧應該是可擴展的,這是實現使用的。儘管棧的大小可以固定,但它可以包含的元素的最大數量。但通常你會認爲它是隨着元素數量增加而擴展的動態結構。通常它用作ADT(抽象數據類型),以便使用哪種結構(LinkedList,Array,ArrayList等)來實現它,其功能和屬性始終相同
相關問題
- 1. 數據結構:堆棧
- 2. 瞭解堆棧(數據結構),堆棧類,鏈表 - java?
- 3. Segmenation Fault - 處理堆棧數據結構
- 4. 堆棧數據結構操作
- 5. 堆棧間隔的數據結構
- 6. 哪個更好找到最小元素堆棧或堆數據結構
- 7. Java-數據結構堆棧:從用戶輸入的堆棧打印出整數
- 8. 是否分配了ruby結構堆棧?
- 9. MySql中使用哪種數據結構?
- 10. 哪種數據結構最好?
- 11. 要使用哪種數據結構
- 12. 要使用哪種數據結構?
- 13. 要使用哪種python數據結構
- 14. 選擇哪種數據庫結構?
- 15. 何時使用哪種數據結構?
- 16. 要使用哪種數據結構
- 17. 要選擇哪種數據結構?
- 18. 堆數據結構
- 19. linkedList是一個堆棧嗎?什麼是堆棧數據結構的最佳實現
- 20. 棧中的數據結構
- 21. 核心數據棧結構
- 22. 在堆棧上存儲C結構是否是一種很好的做法?
- 23. 棧和隊列是線性數據結構還是非線性數據結構?
- 24. 將堆棧結構存儲在堆vs棧上
- 25. C++數據結構堆
- 26. 構造函數調用的存儲位置在哪裏?堆棧還是堆?
- 27. 以下情況下的數據結構如何? (最大堆棧)
- 28. 如何解決堆棧和隊列數據結構?
- 29. 我將如何建模UML中的堆棧數據結構?
- 30. 將結構中的數據推送到堆棧中C
可能的重複[什麼和棧在哪裏和堆?](http://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap) – scottb
@scottb它不是那種堆棧:) – dasblinkenlight
@scottb我認爲目前的問題是指通常的數據結構稱爲* stack *,而不是*堆棧*(在操作系統中)與*堆*之間的差異。 – vsoftco