##steps
step 1. 循环fib_trie
, 直到当前节点为空或者是叶子节点时,停止。
1.a
比较当前节点的key
跟待插入的key
的前pos位,
如果不相等,循环结束。如果相等执行1.b
(作为改进,加上父节点已经比较了前posx位, 那么只需比较
(posx,pos)这区间的位即可。 注意posx有可能与pos相等。
1.b
记录已经比较的位数(tn->pos + tn->bits)
取当前节点的一个孩子节点,
tkey_extract_bits(key, tn->pos, tn->bits)
继续执行。
step 2. 循环结束,当前节点n
有可能为空,也有可能是个叶子节点,或者中间节点(1.a).
1 | if (n == NULL) |