指数搜索是如何完成的?
根据http://en.wikipedia.org/wiki/Exponential_tree,“指数树与二叉搜索树几乎相同,唯一的区别在于树的维度在所有级别上都不相同。在普通的二叉搜索树中,每个节点的维度(d)为1,并且有2d个子节点。在指数树中,维度等于节点的深度,根节点具有d = 1。因此,第二层可以容纳两个节点,第三层可以容纳八个节点,第四层可以容纳64个节点,依此类推。”
但是,我应该如何在列表、数组等上实际表示它?普通的BBSTs是一种方式,有点像:获取一个排序的数组,从其中间开始搜索(BBST的根),通过将查询键与当前子节点进行比较来向下移动。它要么更大,要么更小。
谜团是 - 在搜索查询键时,指数搜索树背后的比较类型是什么?这样的树中可以存储什么?一些令人爆炸的想法-它如何平衡?如果有任何简单的文献来源,那就太好了!
非常感谢!
根据http://en.wikipedia.org/wiki/Exponential_tree,“指数树与二叉搜索树几乎相同,唯一的区别在于树的维度在所有级别上都不相同。在普通的二叉搜索树中,每个节点的维度(d)为1,并且有2d个子节点。在指数树中,维度等于节点的深度,根节点具有d = 1。因此,第二层可以容纳两个节点,第三层可以容纳八个节点,第四层可以容纳64个节点,依此类推。”
但是,我应该如何在列表、数组等上实际表示它?普通的BBSTs是一种方式,有点像:获取一个排序的数组,从其中间开始搜索(BBST的根),通过将查询键与当前子节点进行比较来向下移动。它要么更大,要么更小。
谜团是 - 在搜索查询键时,指数搜索树背后的比较类型是什么?这样的树中可以存储什么?一些令人爆炸的想法-它如何平衡?如果有任何简单的文献来源,那就太好了!
非常感谢!