我知道System.Collections.Stack。我正在尋找支持PushFront()& PushBack()的類。.net中是否有雙面堆棧類?
回答
爲什麼不只是使用/包裝LinkedList<T>
?它有AddFirst
和AddLast
方法。您可以將其包裝以隱藏AddBefore
等方法。
這是一個常見術語deque(它表示雙端隊列)。如果由於某種原因包裝LinkedList<T>
不足(應該!),您可以查看Eric Lippert的immutable deque的實現。
這聽起來像你想要的東西通常被稱爲deque。我知道在.NET中最接近的是LinkedList<T>
。我不相信有一個從循環緩衝區(根據需要擴展)構建,這是你可能想從頭開始構建它的方式。
當然,你可以自己實現 - 但我可能會使用LinkedList<T>
,除非我有一個非常好的理由不去。埃裏克Lippert也有an immutable implementation you could look at(blog post covering it),但顯然你會想寫一堆測試等等,而你不可能想要一個不可改變的。
他們應該考慮重命名這個網站askjonskeet.com –
@SethReno:這已經採取...試試吧:) –
爲什麼不使用LinkedList<T>
?它允許添加開始,結束和之間的任何地方。如果你不想公開某些LinkedList<T>
方法,那麼你總是可以把它包裝起來,只公開你想要公開的方法。
你在找什麼是一個德克。這裏是一個例子:http://www.codeproject.com/KB/recipes/deque.aspx
- 1. Bitnami堆棧是否有效?
- 2. 在C++中鏈接雙棧鏈表和堆棧和隊列類
- 3. XCode:儀器是否有堆棧跟蹤?
- 4. 我是否需要在.NET中顯式調整堆棧大小?
- 5. .NET堆棧溢出?
- 6. 是否Zend_Db_Adapter :: beginTransaction()堆棧?
- 7. 什麼是「雙堆棧故障」?
- 8. 具有一個插槽的雙堆棧
- 9. 如何檢測是否支持雙堆棧套接字?
- 10. 我是否在swift中實現了自己的堆棧? swift是否像Java一樣在庫中有堆棧?
- 11. 什麼是'堆棧',因爲它與.Net
- 12. 有沒有辦法檢查導航堆棧中是否存在頁面
- 13. cin是堆棧還是堆棧?
- 14. 是否可以添加一些堆棧到一個大堆棧?
- 15. Java,堆棧類
- 16. TinyMCE堆棧類
- 17. Python是否有靜態對象,堆棧對象和堆對象?
- 18. 如何判斷是否有堆或堆棧分配?
- 19. .NET堆棧內存限制
- 20. 是否可以從堆棧跟蹤中獲取實際類型?
- 21. wpf堆棧面板
- 22. 堆棧VS堆帶類
- 23. 全堆棧,堆棧交換等,什麼是堆棧?
- 24. 在.NET中,堆棧中是否也可能發生內存泄漏?
- 25. 是否有可能在TFS中爲衝刺堆棧訂單PBI?
- 26. Linux中進程的堆棧大小是否有限制
- 27. .NET堆棧中的任務運行器?
- 28. .data是否會在masm中堆棧或堆?
- 29. 堆棧的polymorphed類
- 30. 繼承堆棧類
我敢肯定,如果它存在,你會發現它在集合命名空間。 – ChaosPandion
如果支持推回,那麼你稱之爲* Stack *的不是一個。 –