要获得在堆排序阵列中的节点的父,计算将是(指数 - 1)/ 2。堆排序获取父
然而,假定每一个节点在阵列中占用4个空格。要访问记录/节点,我必须访问该记录中四个记录的第一个位置。所以这里有一个例子:
如果父母从第4位开始,则左边的孩子从第12位开始,右边的孩子从第16位开始。获得左边孩子的公式为2*position + 4
,方程式为右边孩子将是2*position + 8
。
什么是方程是获得父母?我需要一个等式来获得左侧孩子或右侧孩子的父母,与index-1/2
一样。这可能吗?如果我需要两个独立的等式,那么这是行不通的,因为我不知道一个记录是左边还是右边的孩子。
谢谢
企业风险管理的方式,为什么会一个节点需要4空间?它需要一个。 –
因为这就是我想要的..我正在做一个堆排序的修改版本,你不必担心它的细节。 – darksky
但你要求的细节帮助;-) – phkahler