IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Afficher un arbre binaire orienté


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Septembre 2015
    Messages : 10
    Par défaut Afficher un arbre binaire orienté
    Comment faire pour faire un affichage correct d'un arbre binaire
    comme ca :

    ex:...........1
    ............../...\
    ...........0.......3
    ................../...\
    .................2...4

    G essayé en recursif mais j'm'y suis cassé la tête.
    Merci a celui / ou celle qui pourra m'aider !
    la structure adopté est :
    typedef struct Arbre
    {
    int val;
    struct Arbre*fils_gch;
    struct Arbre *fils_dt;
    }Arbre;

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 770
    Par défaut
    Pour un code aussi prise de chou que cela, je passe mon chemin. Mais voici l'idée

    Pour le dernier niveau tu vas avoir un affichage comme cela:

    |<- espace bord->|<- 1 ->|<- 2 ->|<- 1 ->|<- 3 ->|<- 1 ->|<- 2 ->|<- 1 ->|<- 3 ->| ..... |<- 3 ->|<- 1 ->|<- 2 ->|<- 1 ->|<- espace bord->|

    Avec:
    • 1 -> Nombre maximal de caractères à afficher (données d'un fils)
    • 2 -> Espace entre les 2 fils
    • 3 -> Espace entre 2 groupes fils droit/ gauche


    Donc ton algo va être le suivant:
    1) Calculer tous les espaces, et la hauteur de ton arbre
    2) Calculer le dernier niveau

    3) La racine c'est le niveau 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    tant que le niveau N n'est pas la racine faire
        Afficher le niveau (N - 1)
        Afficher les traits pour la hauteur
        Afficher le niveau N
    fin tant que
    Ce qu'il faut voir c'est qu'au niveau (N - 1), les données des fils (1) vont être centrées sur les espaces entre les 2 fils (2 ou 4) du niveau N.
    Exemple:
    |<- 5 ->|<- 1 ->|<--------- 4 --------->|<- 1 ->|<--------- 5 ---------->|<- 1 ->|<--------- 4 --------->|<- 1 ->|<- 5 ->|
    ...
    |<- 1 ->|<- 2 ->|<- 1 ->|<- 3 ->|<- 1 ->|<- 2 ->|<- 1 ->|<- 3 ->|<- 1 ->|<- 2 ->|<- 1 ->|<- 3 ->|<- 1 ->|<- 2 ->|<- 1 ->|

    Avec:
    • 4 -> Espace entre les 2 fils au niveau (N - 1)
    • 5 -> Espace entre 2 groupes fils droit/ gauche au niveau (N - 1)

Discussions similaires

  1. Créer un arbre binaire et l'afficher
    Par hellowo dans le forum Débuter
    Réponses: 9
    Dernier message: 19/03/2015, 21h38
  2. Afficher un arbre binaire avec sa structure
    Par PhoneKilleR dans le forum C
    Réponses: 7
    Dernier message: 23/04/2008, 23h24
  3. [Arbre binaire de Recherche]
    Par Giovanny Temgoua dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 06/02/2004, 11h45
  4. Arbre binaire
    Par Heaven dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 02/02/2004, 19h01
  5. [LG]probleme de creation arbre binaire
    Par jsaviola dans le forum Langage
    Réponses: 2
    Dernier message: 06/01/2004, 20h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo