简单的数据结构
trie结构
trie结构特点:
- 1、每个节点的分支数目却决于这个key值里每个元素 取值范围。图例中最多26个英文字母分叉+一个结束标志位。
- 2、trie查找效率取决于key的长度。键值越长,查找需要访问内存的次数就越多。实际应用中(以太坊地址长度为160byte,表示成40个16进制的数)。
- 3、理论上哈希会出现碰撞,而trie上面不会发生碰撞,因为trie结构中,只要地址不一样,最后肯定会映射到两个不同的分支。
- 4、给定输入,无论如何顺序插入,构造的trie结构树都是一样的。而Merkle tree中给定顺序不同,所产生的树结构也不同。
- 5、更新操作局部性很好,要更新给定地址的value,只需要访问那一条分支上的结构就可以,而不用去访问其它分支,也不用遍历整颗树。
那么trie有缺点吗?
-
trie的存储浪费。很多节点只存储一个key,但其“儿子”只有一个,过于浪费。因此,为了解决这一问题,我们引入Patricia tree(Partricia trie)
Patricia tr