在什么语言中,关联数组是使用redblack树而不是hashtable实现的?

时间:2010-09-11 12:17:00

标签: algorithm programming-languages hashtable

在维基百科:http://en.wikipedia.org/wiki/Red-black_tree#Applications_and_related_data_structures

  

红黑树是一种类型   自平衡二叉搜索树,a   计算中使用的数据结构   科学,通常用于实施   关联数组。

任何人都知道使用redblack树实现语言的关联数组吗?

5 个答案:

答案 0 :(得分:3)

java.util.TreeMap是Java中红黑树的实现。

答案 1 :(得分:2)

C ++ std::map通常被实现为红黑树。这是基本的关联数组。另一个(新)是std :: unordered_map,实际上是一个哈希映射。

答案 2 :(得分:1)

我不知道它是否是红黑树,但Haskell's Data.Map是一个平衡的二叉树:

  

Map的实现基于大小平衡的二叉树(或有界平衡树),如下所述:

     
      
  • Stephen Adams,“高效集:平衡行为”,功能规划期刊3(4):553 - 562,1993年10月,http://www.swiss.ai.mit.edu/~adams/BB/
  •   
  • 学家Nievergelt和E.M. Reingold,“有限平衡的二元搜索树”,SIAM计算杂志2(1),1973年3月。
  •   

Ocaml在hashtablesbinary trees上都有映射类型。

答案 3 :(得分:1)

C# SortedDictionary实现为红黑树,而Dictionary使用哈希表,而SortedList基本上是二进制搜索列表,用于键查找。< / p>

答案 4 :(得分:1)

Scala的scala.collection.immutable.TreeMap是用红黑树实现的。