(E-Mail Removed) wrote:

> while (y < h && (b[z2=2*y+2,z1=2*y+1] < EMPTY || b[z2] < EMPTY)) {

> if(b[z1] <= b[z2]) { b[y] = b[z1]; y = z1; }

> else { b[y] = b[z2]; y = z2; } }
while (y < h && (z1=2*y+1, z2=2*y+2, b[z1] < EMPTY || b[z2] < EMPTY))

if (b[z1] <= b[z2]) b[y] = b[z1], y = z1;

else b[y] = b[z2], y = z2;

or

while (y < h && (z = 2*y, b[z+1] < EMPTY || b[z+2] < EMPTY))

if (b[z+1] <= b[z+2]) b[y] = b[z+1], y = z+1;

else b[y] = b[z+2], y = z+2;

or

while (y < h && (b[2*y+1] < EMPTY || b[2*y+2] < EMPTY))

z = 2*y + (b[2*y+1] <= b[2*y+2] ? 1 : 2), b[y] = b[z], y = z;

or

while (y < h && (z = 2*y, b[z+1] < EMPTY || b[z+2] < EMPTY))

z += b[z+1] <= b[z+2] ? 1 : 2, b[y] = b[z], y = z;

--

Dietmar