Monday, November 26, 2007

Generate perfectly balanced tree

The script that follows generates perfectly balanced tree with "n" nodes:


function tree( $num_nodes )
{
global $tree;

if( $num_nodes == 0 )
return null;

$left = (int)($num_nodes / 2);
$right = $num_nodes - $left -1;

$tree[]['value'] = (int)(rand( 1, 50) / $num_nodes+1);
$last = count($tree)-1;

$tree[$last]['left'] = tree( $left );
$tree[$last]['right'] = tree( $right );

return $last;
}

0 comments: