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 :

Algorithme pour trouver le niveau de chaque noeud d'un arbre binaire


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Par défaut Algorithme pour trouver le niveau de chaque noeud d'un arbre binaire
    Bonjour,
    J'arrive à parcourir un arbre Binaire (parcours en largeur et parcours en profondeur RGD, GRD, GDR) mais je n'arrive pas à faire en sorte de trouver le niveau de chaque noeud.

    Pourriez-vous m'aider?

    Merci d'avance.

  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
    Par défaut
    Ce ne serait pas 1 + le niveau de son père, sachant que la racine a le niveau 0 ou 1 ?
    "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 confirmé
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Par défaut
    Oui c'est bien cela, la racine a 0 et ensuite c'est le niveau du père +1.

    Mais je n'arrive pas à écrire un algorithme qui reçoit un arbre binaire d'entier et qui place comme valeur dans chaque noeud de l'arbre le niveau.

    Donc dans la valeur de racine je placerai 0, ensuite dans ses fils je place 1, etc.

    Merci d'avance.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 103
    Par défaut
    Bonjour,

    C'est possible d'étiqueter les sommets avec leur profondeur en modifiant un peu le parcours en largeur.
    Il faut faire une passe par niveau en dupliquant la file.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Par défaut
    C'est ce que je voulais faire mais je n'arrive pas à transformer mon parcours en largeur... Je n'arrive pas à me rendre compte du moment ou je passe au niveau suivant...

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 103
    Par défaut
    Voici le pseudo-code de l'algo :

    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
    Bfs(T) : array
    r := racine(T)
    créer deux files F1 et F2 et ajouter r dans F1
    i:=0
    faire
    tant que (F1 n’est pas vide)
    x :=premier(F1); supprimer x de F1
    array[i] := x
    i++
    pour chaque fils y de x
    ajouter y dans F2
    fin pour
    fin tant que
    F1 := F2
    // fin d’une passe début de la nouvelle : la
    F2 devient vide // profondeur change
    tant que F1 n’est pas vide
    Désolé, la mise en forme s'est perdue en chemin

Discussions similaires

  1. quel algorithme pour trouver le plus grand sous arbres commun à des arbres?
    Par iwky911 dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 20/05/2009, 21h08
  2. Algorithme pour trouver efficacement le matching complet (appairement) optimal ?
    Par LordFarquaad dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 28/03/2007, 10h27
  3. problème d'algorithme pour trouver les circuit d'un graphe
    Par marc_dd dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 21/08/2006, 16h36
  4. algorithme pour trouver la mediane ?
    Par Battosaiii dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 04/07/2006, 10h22
  5. Algorithme pour trouver i entier tel que n + i² est un carré
    Par duchere dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 22/04/2006, 08h24

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