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

Algorithmes et structures de données Discussion :

affichage d'un arbre


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut affichage d'un arbre
    Je rencontre un problème pour afficher un arbre créé à partir d'une expression régulière.
    Je souhaiterais l'afficher à l'aide d'un tableau (y a t il une méthode plus adéquate?) mais je ne vois pas comment programmer cela en gardant une symétrie. En effet, des éléments de l'arbre se croise...

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Que veux-tu dire "des éléments se croisent" ? Ce n'est plus un arbre, c'est un graphe.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    quelle est ton expression?
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    c'est un travail sur les expressions régulières que je dois mettre sous forme d'arbre et ensuite afficher cet arbre.
    Le probleme que je rencontre est que je ne sais pas comment faire pour afficher un tableau qui soit symétrique:
    l'arbre fonctionne avec des fils droit et gauche et plus la prfondeur de l'arbre est importante plus j'ai du mal à créer un algorithme ou les fils droit de certains noeud ne se superposent avec des fils gauche de certains autre noeud
    J'espere avoir été plus clair

  5. #5
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    Ton affichage, il est graphique ou en mode texte ? est ce que tu peux preciser un peu ce que tu entends par affichage ? Car j'ai deja du afficher des arbres, mais de facon graphique.

    Pour cela, je m'y prennais de la facon suivante :

    Tu commences par le calcul de la taille de l'arbre. Si c'est un feuille, tu decides la taille qu'il faut en fonction de la facon dont tu souhaites afficher la feuille. Si c'est un noeud, du calcule la taille des fils et ensuite, en fonction de ca et de la facon dont tu souhaites afficher les fils gauche et droit et le noeud, tu calcules la taille de ton noeuds

    En connaissant la taille de l'arbre pour chacun de ces noeuds, tu pourras afficher ton arbre sans avoir de probleme de superposition. M

    J'espere que ca t'auras un peu mis sur la voie car je ne sais pas si tu peux faire ca dans ton cas ou tu affiches avec des tableaux. J'avoue n'avoir pas trop compris ce que tu appeles afficher avec des tableaux.[/code]

  6. #6
    Débutant
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 268
    Points : 139
    Points
    139
    Par défaut
    il veut dire il a un arbre quelconque il veut l'afficher.

    Après le tableau c'est la facon dont est codé son arbre représentation lv/lh par exemple.

  7. #7
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Salut

    J'ai utilisé cette méthode pour afficher un arbre binaire.

    Pour avoir un affichage symétrique, j'ai calculé la profondeur de l'arbre, le nombre de noeuds maxi à afficher est donc 2 ^profondeur , tu peux ainsi calculer la largeur nécessaire pour tout afficher.
    Ensuite tu utilises une file pour enfiler les noeuds à afficher en utilisant un numéro d'étage et un numéro d'ordre dans l'étage pour ne pas te tromper dans la position de l'affichage et pouvoir tracer les lignes reliant les noeuds. C'est un petit calcul relativement simple.

    Si tu es intéressé, je peux t'envoyer les sources, c'est du C, j'ai fait ça avec GTK, mais là mon code n'est pas terrible car je ne connais pas bien GTK.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  8. #8
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    Bien evidement, ce que j'ai decris s'applique aussi au arbre quelconque... il suffit de remplacer fils gauche et fils droite par l'ensemble des fils d'un noeud.

Discussions similaires

  1. affichage élégant d'arbre
    Par Bayard dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 20/11/2007, 12h02
  2. Affichage d'un arbre
    Par info_amel dans le forum Débuter
    Réponses: 7
    Dernier message: 04/09/2007, 21h19
  3. code source pour l'affichage d'un arbre
    Par med_anis_dk dans le forum C
    Réponses: 5
    Dernier message: 27/05/2006, 16h11
  4. code pour l'affichage d'un arbre en visual c++
    Par med_anis_dk dans le forum MFC
    Réponses: 8
    Dernier message: 24/05/2006, 23h16
  5. Affichage d'un arbre
    Par Higestromm dans le forum Requêtes
    Réponses: 10
    Dernier message: 20/01/2006, 15h15

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