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

Python Discussion :

représentation d'un arbre lexicographique dans une console


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 19
    Par défaut représentation d'un arbre lexicographique dans une console
    Bonjour,
    toute nouvelle dans Python .Comme exercice je cherche à faire un arbre
    lexicographique. Cad un arbre des lettres d'une série de mots.
    Pour un langage fini quelconque L construit son arbre lexicographique. On devra pouvoir afficher les arbres obtenus
    L = { A, AN, ANE, ANES, ANI, BAT, BATE, BAS, BASSE, JE, JEU, JOUE }.

    j'ai essayer d'abord avec un exemple mais j'ai un petit problème il m'affiche que le premier mot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    #!/usr/bin/python3.1
    def append_word(tree, word):
        if len(word):
            char = word[0]
            if not tree.has_key(char):
                tree[char] = {}
                append_word(tree[char], word[1:])
     
    def make_tree(tree, words):
        for w in words:
            append_word(tree, w)
     
    def dump_tree(tree, indent=0):
        for c in tree.keys():
            print (" " * indent + c)
            dump_tree(tree[c], indent + 2)
     
    words = ['balle', 'ballon', 'bals', 'bas']
    tree = {}
    make_tree(tree, words)
    dump_tree(tree)
    Si quelqu'un a des idées, merci

  2. #2
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 565
    Par défaut
    Simple problème d'indentation sur append_word(tree[char], word[1:]) ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    def append_word(tree, word):
        if len(word):
            char = word[0]
            if not char in tree:
                tree[char] = {}
            append_word(tree[char], word[1:])
     
    def make_tree(tree, words):
        for w in words:
            append_word(tree, w)
     
    def dump_tree(tree, indent=0):
        for c in tree.keys():
            print " " * indent + c
            dump_tree(tree[c], indent + 2)
     
    words = ['balle', 'ballon', 'bals', 'bas', 'sac']
    tree = {}
    make_tree(tree, words)
    dump_tree(tree)
    En fait tu omettais l'alternative else de "if not char in tree:"
    Ca a l'air de marcher, à toi de vérifier.

    2 remarques :
    - explique un peu mieux ton problème, tout le monde ne sait pas forcément ce qu'est un arbre lexicographique.
    - le shebang semble indiquer un interpréteur Python3 mais tu utilises une syntaxe Python2

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 19
    Par défaut
    Merci ça marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affichage d'un Arbre B dans une console
    Par gastoncs dans le forum Langage
    Réponses: 4
    Dernier message: 09/06/2011, 11h24
  2. Représenter un arbre dans une console
    Par rambc dans le forum Général Python
    Réponses: 9
    Dernier message: 31/10/2010, 23h55
  3. Ctrl -] ne passe pas dans une console avec vim
    Par Celelibi dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 10/03/2006, 13h35
  4. Accents dans une console windows
    Par JolyLoic dans le forum Windows
    Réponses: 8
    Dernier message: 20/10/2004, 00h57
  5. [VB.NET] Tabulation dans une console
    Par jacma dans le forum Windows Forms
    Réponses: 5
    Dernier message: 30/09/2004, 09h50

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