L'Impression De Niveau De L'Ordre Binaire De Recherche, De Mise En Forme D'Arbre
J'ai implémenté le code suivant pour imprimer un arbre de recherche binaire dans l'ordre de niveau.
public void printLevelOrder(int depth) {
for (int i = 1; i <= depth; i++) {
printLevel(root, i);
}
}
public void printLevel(BinaryNode<AnyType> t, int level) {
if (t == null) {
return;
}
if (level == 1) {
System.out.print(t.element);
} else if (level > 1) {
printLevel(t.left, level - 1);
printLevel(t.right, level - 1);
}
}
Je suis à essayer de comprendre comment améliorer mon code pour imprimer dans un certain format.
Comme un exemple, étant donné un arbre
1
/ \
2 3
/ / \
4 5 6
Actuellement, il imprime comme suit:
123456
Je suis à la recherche de son impression comme suit:
Level 0: 1
Level 1: 2 3
Level 2: 4 5 6
Laissez la fonction
printLevel
retourne le numéro de nœud comme une chaîne de caractères au lieu de l'imprimer immédiatement. Ensuite, vous pouvez concaténer ces chaînes dans n'importe quel format que vous voulez.OriginalL'auteur ILostMySpoon | 2012-11-01
Vous devez vous connecter pour publier un commentaire.
Au lieu d'imprimer les valeurs immédiatement à l'intérieur de la fonction récursive des appels, d'utiliser des chaînes de caractères pour stocker les valeurs. Ce sera plus facile de manipuler la sortie.
De sortie:
OriginalL'auteur Aziz