Estoy implementando un arbol para dibujar posteriormente un grafico.
Tengo la siguiente estructura:
Código:
class arbol
{
var $data; //Datos a guardar en la rama
var $numero_hijos; //numero de hjos de la rama
var $nivel; //nivel de profundidad (Es necesario administrarlo desde fuera la clase, a la hora de crear el arbol)
var $childs; //Apuntador a otras ramas
var $grado; //Grado de la rama
function arbol($nivel, $datos=null)
{ $this->childs=array();
$this->nivel=$nivel;
if($datos)
$this->setData($datos);
}
function addChild(&$nodo)
{ $this->childs[]=$nodo;
$this->numero_hijos+=1;
}
function setData($datos)
{ $this->data=$datos;
}
}
El problema que tengo es a la hora de poder relacionar los hijos con sus padres (al revés, de abajo a arriba).
En C lo hice en su dia mediante punteros, pero con php no se si puedo utilizar las referencias "&" de manera similar.
Podria usar esto para a la hora de añadir un child, hacer una referencia al parent asi?
Código:
function addChild(&$nodo)
{ $nodo->parent=&$this;
$this->childs[]=$nodo;
$this->numero_hijos+=1;
}
Lo he probado, no me da error (al hacer un print_r del arbol el valor para parent me sale *RECURSION*) pero no se si es correcto.