d堆

就是d叉堆,是二叉堆的简单推广(http://blog.csdn.net/buleriver/article/details/38469907)

对于一个d堆。也是能够使用数组表示。关键是怎样通过索引,查找到其父节点和孩子节点,公式例如以下:

child(i, j)=d * (i - 1) + 2 + j,当中j = 0, 1, ..., d - 1
parent(i) = (i - 2 + d) / d
代码实现和二叉堆差点儿相同。改天实现一下。

你可能感兴趣的:(d堆)