Maison > Java > javaDidacticiel > Comment imprimer des diagrammes d'arbre binaire en Java ?

Comment imprimer des diagrammes d'arbre binaire en Java ?

Mary-Kate Olsen
Libérer: 2024-11-16 19:03:03
original
789 Les gens l'ont consulté

How to Print Binary Tree Diagrams in Java?

Impression de diagrammes d'arbre binaire en Java

Introduction :

Visualiser la structure d'un arbre binaire est crucial pour faciliter la compréhension et le débogage. Cet article examine une solution Java pour imprimer des arbres binaires dans un format schématique, fournissant une représentation claire de la structure de l'arbre.

Solution :

L'objectif principal de cette solution consiste à imprimer un arbre binaire par lignes, similaire à l'exemple suivant :

4
/ \
2   5
Copier après la connexion

A cet effet, le code fourni établit un Node personnalisé class :

public class Node<A extends Comparable> {
    Node<A> left, right;
    A data;

    public Node(A data){
        this.data = data;
    }
}
Copier après la connexion

Impression par lignes :

L'idée clé de cette solution est d'imprimer l'arbre de haut en bas, ligne par ligne. Les enfants de chaque nœud sont imprimés sur les lignes suivantes, avec des retraits appropriés pour indiquer leur niveau dans l'arborescence.

Par exemple, pour visualiser un arbre avec la structure suivante :

        4
       / \
      2   5
    / \    /
   1   3  6
Copier après la connexion

La sortie serait ressembler à ce qui suit :

4
├── 2
│   ├── 1
│   └── 3
└── 5
   └── 6
Copier après la connexion

Mise en œuvre du code :

La logique de base est encapsulé dans la méthode d'impression de la classe TreeNode :

public void print(StringBuilder buffer, String prefix, String childrenPrefix) {
    buffer.append(prefix);
    buffer.append(name);
    buffer.append('\n');
    for (Iterator<TreeNode> it = children.iterator(); it.hasNext();) {
        TreeNode next = it.next();
        if (it.hasNext()) {
            next.print(buffer, childrenPrefix + "├── ", childrenPrefix + "│   ");
        } else {
            next.print(buffer, childrenPrefix + "└── ", childrenPrefix + "    ");
        }
    }
}
Copier après la connexion

Cette méthode parcourt récursivement l'arbre, en imprimant ligne par ligne et en tenant compte des retraits appropriés pour délimiter la structure de l'arbre.

Remarque :

Bien que cette solution se concentre sur l'impression d'arbres arbitraires, elle peut être facilement modifiée pour cibler spécifiquement arbres binaires en limitant chaque nœud pour qu'il ait un maximum de deux enfants.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal