看了idr的源码,思想基本同基数树一致,在网上找了几副图:

图片引用自:http://blog.csdn.net/yyttiao/article/details/8164029

pre_get:

idr 图示

单层情况下的布局:

idr 图示

 

在idr.layers == 1 的情况就是上面这图所示,所有的ptr都落在ary对应的地址区域...而对应得到的id值就是0到31.也就是5位..用4字节的低5位表示0到31 这32个地址对应的区域..下面再看下2层的情况

idr 图示

 

从前副图中,我们总结下..在1层中,id最大值为1 << 5(32只需要5个二进制位) * 1 =  在2层中1 << 5(32只需要5个二进制位) * 2  在2层的情况中,仅仅覆盖了4字节中的32^3次方 32768 个id号..所以这颗树可以继续增长..直到4字节的最大值

idr 图示

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-26
  • 2021-07-02
  • 2021-04-28
  • 2021-05-30
  • 2022-12-23
猜你喜欢
  • 2021-08-05
  • 2021-04-10
  • 2021-12-26
  • 2021-10-22
  • 2022-12-23
  • 2021-11-22
  • 2022-12-23
相关资源
相似解决方案