I want to create a recursive PHP program using a binary tree and recursion.
I want to print the level of a binary tree by level using recursion. I want to go back through the tree, click node in the hash map, which has the level as a control point.
Here is what I still have:
$binary_tree = array(array(1 => array(2 => array(4,5),4=>array(5,6))));
1
|
------------------
| |
2 4
| |
---------- ----------
| | | |
4 5 5 6
And the end result should look like this:
$data[0] = array(1);
$data[1] = array(2,4);
$data[2] = array(4,5,5,6);
I can easily scroll through the array and print the numbers corresponding to the level (array index).
Here's a function that is wrong, but my first snapshot:
function recurse_tree($data,$level=0){
$final = array();
$tmp = array()
if(is_array($data)){
foreach($data as $elm){
$tmp[] = recurse_tree($elm,$level+1);
}
} else {
array_push($final[level],$elm);
}
return ($final + $tmp);
}
, , . , 9 , 2 4, , , node, 1. , 5-8, im at 4, , , , 2.
$flattened_tree = recurse_tree($data);
1./ called recurse_tree
data: array(array(1 => array(2 => array(4,5),4=>array(5,6))));
level: 0
final: array();
tmp: array();
2./ called recurse_tree:
data: array(1 => array(2 => array(4,5),4=>array(5,6)));
level: 1
final: array();
tmp: array();
3./ called recurse_tree:
data: array(2 => array(4,5),4=>array(5,6));
level: 2
final: array();
tmp: array();
4./ called recurse_tree:
data: array(4,5)
level: 3
final: array();
tmp: array();
5./ called recurse_tree:
data: 4
level: 4
final: array(4 => 4)
tmp: array()
6./ called recurse_tree:
data: 5
level: 4
final: array(4 => 5)
tmp: array(4 => 4)
7./ called recurse_tree:
data: 5
level: 4
final: array(4=> 5)
tmp: array(4 => array(4,5))
8./ called recurse_tree:
data: 6
level: 4
final: array(4 => 6)
tmp: array(4 => array(4,5,5))
?