Cet article décrit la méthode Java pour imprimer tous les chemins de l'arbre binaire. Partagez-le pour votre référence, comme suit:
question:
Donnez un arbre binaire et imprimez tous les chemins.
Par exemple, pour l'arbre binaire suivant, tous ses chemins sont:
8 -> 3 -> 1
8 -> 2 -> 6 -> 4
8 -> 3 -> 6 -> 7
8 -> 10 -> 14 -> 13
Idées:
À partir du nœud racine, mettez votre propre valeur dans un tableau, puis transmettez ce tableau à son nœud enfant. Le nœud enfant met également sa propre valeur dans ce tableau et le transmet à son nœud enfant jusqu'à ce que ce nœud soit un nœud de feuille, puis imprime le tableau. Nous devons donc utiliser la récursivité ici.
Code:
/ ** Étant donné un arbre binaire, imprime tous ses chemins de racine à feuille, un par ligne. Utilise une aide récursive pour faire l'œuvre. * / Public void PrintPaths (Node root, int n) {String [] path = new String [n]; PrintPaths (root, chemin, 0);} / ** Helper Recursive PrintPaths - étant donné un nœud, et un tableau contenant le chemin du nœud racine jusqu'à mais sans inclure ce nœud, String [] cheminée, int pathlen) {if (nœud == Null) renvoie; // Ajouter ce nœud au chemin du tableau de chemin [pathlen ++] = node.value; // c'est une feuille, alors imprimez le chemin qui a conduit ici if (node.leftchild == null && node.Rightchild == null) {printRarray (path, pathlen); } else {// Sinon, essayez les deux Subtrees PrintPaths (Node.LeftChild, Path, Pathlen); PRINTPATHS (Node.RightChild, Path, Pathlen); }} / ** Utilitaire qui imprime les chaînes d'un tableau sur une ligne. * / Private void printarRay (String [] ints, int len) {for (int i = 0; i <len; i ++) {System.out.print (ints [i] + ""); } System.out.println ();}Remarque: vous ne pouvez utiliser qu'un tableau + une valeur pour imprimer le chemin requis. Si vous utilisez une structure de liste liée telle que LinkedList, cela ne fonctionnera pas. Cela vaut la peine d'analyser les raisons, c'est très intéressant.
Pour plus d'informations sur les algorithmes Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Structure de données Java et tutoriel d'algorithme", "Résumé des conseils de nœud de Dom Operation Java", "Résumé du fichier Java et des conseils d'opération de répertoire" et "Résumé des conseils d'opération Java Cache"
J'espère que cet article sera utile à la programmation Java de tous.