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