Java n'a pas une classe d'arbre binaire , mais il est facile de présenter une version de la structure de données pour faire un parcours infixe . Un " parcours " d'un arbre binaire est une procédure formules pour visiter chaque nœud de l'arbre binaire en même temps. Un parcours infixe se faire dans l'ordre. Traversal est souvent mis en œuvre comme une sorte d' iterator ( comme une liste iterator ) ou par une méthode qui va appeler une méthode de rappel pour chaque noeud. Vous pouvez , cependant, faire cela sans l'aide des rappels ou des itérateurs , au lieu d'imprimer sur la console à chaque nœud visité . Instructions
1
Créer une recherche classe d' arbre binaire de base. À ce stade, vous aurez seulement besoin d' une méthode de constructeur de base qui initialise la valeur du nœud et une méthode d'insertion. La méthode d'insertion va traverser un arbre et faire un nœud au bon endroit . "" public class BinaryTree { BinaryTree gauche ; BinaryTree droit ; int valeur ; publique BinaryTree (int v) {valeur = v ;} //insérer une valeur dans l'arbre insert public void (int v) {if (v if ( gauche = = null) gauche = new BinaryTree ( v); d'autre left.insert ( v); } else if ( v> value) { if ( droite == null) à droite = new BinaryTree ( v); d'autre right.insert ( v) ; . . }} } ""
2
créer l'instance ( nœud) de l'arbre binaire qui sera le nœud racine comme n'importe quel autre nœud, le nœud racine doit avoir une valeur Il est généralement préférable pour choisir une valeur proche de la médiane des objets que vous stockez , comme les arbres binaires doivent être aussi équilibrée que possible "" BinaryTree b = new BinaryTree (50); " . "
3 < . . p> Insérer des nœuds dans l'arborescence afin spécifique pour conserver l'équilibre, comme cet arbre binaire n'est pas auto- équilibrage cet exemple crée le plus petit arbre possible afin de maintenir l'efficacité "" b.Insérez (20); b.Insérez (40); b.Insérez (10); b.Insérez (5); b.Insérez (45); b.Insérez (70); b.Insérez (60); b.Insérez (80); b.Insérez ( 55); b.Insérez (85); ""
4
se déplacer à travers l'arbre en utilisant un parcours infixe l'arborescence de gauche est traversé en premier, suivi par le nœud racine , puis le bon arbre est . traversée . utilisant la récursivité , le code est simplement trois lignes. Toutefois, depuis récursion prend de la place de la pile, il doit être utilisé avec précaution. avec un petit arbre binaire équilibré , la récurrence ne débordera pas la pile.
5 < p> Ajouter une nouvelle méthode pour la classe Java BinaryTree appelé afinde "" afinde public void () {if ( gauche = null !) left.inorder (); . System.out.println ( value); ! if ( droite = null ) right.inorder (); } ""
6
Appelez la méthode afinde après vos inserts pour imprimer les nœuds dans l'ordre. "" b.inorder (); "