1. 今天是gb_trees
1.1 key-value 数据结构
1.2. AA树实现, (AVL, RB-tres, AA 树区别看:地址)
1.3. 定义: {Size, Tree} — Tree:: 有元素为 {Key, Value, Smaller::Tree, Bigger::Tree} 或者空树nil组成
1.4. ==来判断是否相同, 也就是说1, 1.0 是一个键值
1.5 用来存储大量数据(有序的)
2. 函数(一些值得注意的函数)
2.1 balance(Tree1) -> Tree2
用来重新平衡树, 一般情况下,不需要调用这个函数。 除非有很多删除操作, 而期间又没有插入操作的时候, 可以手动调用,因为delete操作后不会重新平衡树。 重新平衡树可以减少查找的时间.
2.2 iterator/1 next/1
迭代操作, 官方说这个函数遍历的执行时间略差于gb_trees:to_list 之后遍历的时间, 但是好处在于不需要一下子生成一个长列表
1> G1 = gb_trees:insert(1, a, gb_trees:empty()).
{1,{1,a,nil,nil}}
2> It = gb_trees:iterator(G1).
[{1,a,nil,nil}]