Je souhaite imprimer mon arborescence non binaire avec un cheminement de niveau. Dans le code ci-dessous, je mets un retrait chaque fois qu'un nouvel ensemble d'enfants a été ajouté, mais d'une manière ou d'une autre j'ai besoin de retirer les indentations quand je retourne dans l'arbre. Voilà comment cela imprime arbre:Indentation Java dans l'arborescence de l'ordre des niveaux, pas dans l'arborescence binaire
Root
Home
HomeChild1
HomeChild2
Documents (should be same level as Home)
DocumentChild1
DocumentChild2
Downloads (should be same level as Home and Documents)
DownloadsChild1
Code:
queue.add(o); //root
int indent = 0;
while(!queue.isEmpty(){
for(int i=0; i<indent; i++){
print(" ");
}
Object tempObj = queue.remove(o);
print(tempObj.value);
if(tempObj.children != null){
//Adding all childrens, since its not a binary tree I loop throught all children
for(int i=0; i<tempObj.children.length; i++){
queue.add(0, tempObj.children[i];
}
indent++;
}
}
Voici ce que je veux ressembler
Root
Home
HomeChild1
HomeChild2
Documents
DocumentChild1
DocumentChild2
Downloads
DownloadsChild1
Merci! Fonctionne bien maintenant, bizarre je n'ai pas trouvé une solution récursive quand j'ai cherché Java Breadth-premier algorithme xD –
@SimonAndersson Ceci est l'un des cas d'utilisation classiques pour la récursivité, donc je suis surpris que rien ne vient. –
Oui, mais le Depths-premier est beaucoup plus commun, c'est peut-être pourquoi –