就像multiset是STL中的二叉搜索樹實現一樣,是否有任何可用的RB樹或AVL樹實現?C++標準庫中是否有任何紅黑樹或avl樹實現?
-1
A
回答
0
通常情況下,你不會實現multiset
作爲二叉樹。使用一個會破壞標準的性能保證,因爲樹可能看起來像一個沒有O(logN)插入和刪除的鏈表。
典型地,std::set
/std::multiset
/std::map
/std::multimap
被實現爲RB樹,因爲它具有這些性能保證。但這並不是必需的。該標準僅保證容器在不同操作中的性能,並且如何實現該操作取決於實施。
如果你想保證你使用的是RB樹,你需要檢查你的實現,推出你自己的,或者得到一個保證它是RB樹的第三方庫。
+0
非常感謝。 :) – ash
+2
紅黑樹是一棵二叉樹。平衡二叉樹。 –
相關問題
- 1. AVL和紅黑樹
- 2. C++ AVL樹實現
- 3. 紅黑樹實現
- 4. 將AVL樹轉換爲紅色黑樹
- 5. Avl樹和紅黑樹的比較
- 6. 繪圖二叉樹(AVL和紅黑樹)
- 7. C中紅黑樹的實現
- 8. AVL樹,C,旋轉實現
- 9. AVL樹的實現
- 10. 紅黑樹 - 旋轉方法實現 - C++
- 11. 在C#實現紅 - 黑樹的
- 12. 紅黑樹C#的這個實現是否正確?
- 13. 如何插入和刪除紅黑樹比AVL樹更快?
- 14. 堆或紅黑樹?
- 15. Java的AVL樹實現
- 16. 實現AVL樹的toString()的
- 17. 爲什麼avl樹比紅黑樹搜索更快?
- 18. 紅黑樹和AVL樹之間的區別
- 19. AVL樹的旋轉和紅黑樹的顏色翻轉
- 20. C中的紅黑樹
- 21. python中是否有任何標準的二叉搜索樹實現
- 22. 紅黑樹書的實現(SIGSEGV發生)
- 23. 紅黑樹實現空指針異常
- 24. Succesor AVL樹C++
- 25. 是否有vEB樹的C++實現?
- 26. 如何旋轉樹木或AVL樹?
- 27. 紅黑樹,
- 28. 紅黑樹與B樹
- 29. WAVL(弱AVL)和紅黑樹之間有什麼區別?
- 30. 麻煩在java中實現avl樹
std :: map是一棵紅/黑樹。標準並沒有說它必須是一個,但是性能保證使得不太可能使用別的東西。 –
很確定大多數標準庫實現對所有四個(多)set | map使用RB樹。該標準並未指定實施。 – Zulan