Bonjour
J'ai adapté un code d'arbre binaire en n-aire, pour représenter une page html.
C'est donc un arbre non ordonné.
Un noeud est de la forme :
Les children sont les fils directs d'un même niveau de l'arbre.
Evidemment, on peut y accéder par leurs index : $chidren[$i] etc...
J'ai fait ceci : Parcours en preorder et en levelorder.
Recherche en preorder et levelorder.
Insertion( levelorder ).
La comparaison des noeuds se fait par égalité d objet.
Pour ce qui est de l'interface de l'insertion, j'insère à un emplacement précis ( parent et index ).
Celà vous semble-t-il suffisant, ou faut-il indiquer l'endroit où insérer d'une autre manière ?
Merci beaucoup de votre aide,
Voici un exemple d'arbre fait avec mon interface :
J'ai adapté un code d'arbre binaire en n-aire, pour représenter une page html.
C'est donc un arbre non ordonné.
Un noeud est de la forme :
PHP:
class $Node {
public $data;
public $children;
public function __construct($data)
{
$this->data=$data;
$this->children=array();
}
public function disp_data()
{
echo $this->data;
}
}//end class Node
Les children sont les fils directs d'un même niveau de l'arbre.
Evidemment, on peut y accéder par leurs index : $chidren[$i] etc...
J'ai fait ceci : Parcours en preorder et en levelorder.
Recherche en preorder et levelorder.
Insertion( levelorder ).
La comparaison des noeuds se fait par égalité d objet.
Pour ce qui est de l'interface de l'insertion, j'insère à un emplacement précis ( parent et index ).
Celà vous semble-t-il suffisant, ou faut-il indiquer l'endroit où insérer d'une autre manière ?
Merci beaucoup de votre aide,
Voici un exemple d'arbre fait avec mon interface :
Code:
*****************************************
nTree Object
(
[root] => Node Object
(
[data] => Ancêtre
[children] => Array
(
[0] => Node Object
(
[data] => Fils_1
[children] => Array
(
[0] => Node Object
(
[data] => PetitFils_1_1
[children] => Array
(
)
)
[1] => Node Object
(
[data] => Petit Fils_1_2
[children] => Array
(
)
)
)
)
[1] => Node Object
(
[data] => Fils_2
[children] => Array
(
[0] => Node Object
(
[data] => Petit Fils_2_1
[children] => Array
(
)
)
[1] => Node Object
(
[data] => Petit Fils_2_2
[children] => Array
(
)
)
[2] => Node Object
(
[data] => Petit Fils_2_3
[children] => Array
(
)
)
)
)
[2] => Node Object
(
[data] => Fils_3
[children] => Array
(
)
)
[3] => Node Object
(
[data] => Fils_4
[children] => Array
(
)
)
)
)
)
*******************************************
*** PARCOURS EN LEVEL ORDER ***
*******************************************
Ancêtre Fils_1 Fils_2 Fils_3 Fils_4 PetitFils_1_1 Petit Fils_1_2 Petit Fils_2_1 Petit Fils_2_2 Petit Fils_2_3
*******************************************
*** PARCOURS EN PRE ORDER ***
*******************************************
Ancêtre Fils_1 PetitFils_1_1 Petit Fils_1_2 Fils_2 Petit Fils_2_1 Petit Fils_2_2 Petit Fils_2_3 Fils_3 Fils_4
*******************************************