Pour faire un " parcours " d'un arbre binaire en Java les moyens de faire un traitement algorithmique des nœuds dans un certain ordre . A " précommande " traversée signifie que le nœud racine est traitée en premier , puis le reste des nœuds de l'arbre sont traitées de manière récursive. La fonction traversée sera simplement imprimer chaque nœud , il se rend à la console. Instructions 1 Créer une recherche simple classe d'arbre binaire qui possède un constructeur de base qui initialise la valeur du nœud. Sont également inclus devrait être une méthode insert à parcourir un arbre et créer un nouveau 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 construire le nœud racine de l'arbre binaire , lui attribuant une valeur qui est près de la moyenne de la des objets que vous serez stockez Cela permettra d'assurer l'efficacité, puisque votre arbre binaire doit être assez bien équilibré Si vous stockez une distribution de nombres de 1 à 100, par exemple , 50 est une bonne valeur pour le noeud racine "" BinaryTree b = new BinaryTree (50); ». ». 3 insérer des nœuds dans l'arbre dans un ordre particulier . l'arbre binaire n'est pas auto- équilibrage , etc insertion de nœuds dans un ordre spécifique permet de conserver l'équilibre . Voici les nœuds sont placés faire une courte et efficace équilibré arbre "" 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 Faites un parcours préfixe en traversant la le nœud racine d'abord, puis l'arborescence de gauche et enfin le bon arbre . c'est facile de faire cela de manière récursive avec un petit arbre binaire , car il ne déborde pas de la pile. Si votre arbre binaire est très grand, la fonction de traversée devrait être mis en œuvre itérative. 5 Ajouter une nouvelle méthode , précommande , à la classe BinaryTree . Voici la seule méthode affiche la valeur de chaque nœud qu'il visite . "" précommande public void () { System.out.println ( value); if ( gauche = null !) left.preorder (); if ( droite = null !) right.preorder (); } "" 6 Appelez la nouvelle méthode après vos insertions pour imprimer les nœuds précommande "" b.preorder (); " .
|