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 :

Parcours en profondeur récursif d'arbre


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    etudiant
    Inscrit en
    Avril 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 56
    Points : 32
    Points
    32
    Par défaut Parcours en profondeur récursif d'arbre
    Bonjour,

    Je me permet de vous solliciter, car je bloque.
    Je dois écrire un parcours en profondeur par récursivité d'un arbre quelconque (N-aire).
    Je sais que chaque fils peut être traité comme une liste chainée et que tant que
    l'on se trouve sur la liste des fils, on applique une procédure sur tous les fils.

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    ici nous donnons beaucoup d'informations concernant les parcourt d'arbre
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    etudiant
    Inscrit en
    Avril 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 56
    Points : 32
    Points
    32
    Par défaut
    j'ai essayé d'implémenter une solution par récursivité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Fonction prof_3(n=Arb):entier
    debut
        si(n==NULL)
            retourner -1
        finsi
        pour i allant de 1 à f      //pour chaque fils où f est le nombre de fils
           retourner (1+max(prof_3(fg(n)),prof_3(fd(n)))         //la fonction max étant une fonction à définir qui permet de trouver la plus grande branche de chaque fils
        finpour
    fin
    Mais comment faire si il y a plus de 2 fils ?

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    tu n'as pas lu la réponse de tbc92
    au lieu de FilsG et FilsD il faut parcourir tous les Fils
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 397
    Points
    9 397
    Par défaut
    Dans ton code, tu fais une boucle pour i = 1 a f... et dans cette boucle, tu n'utilises pas i.
    De manière générale, une boucle sur i, où on n'utilise pas i... c'est souvent faux.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    etudiant
    Inscrit en
    Avril 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 56
    Points : 32
    Points
    32
    Par défaut
    Je propose ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Fonction prof_3(n=Arb):entier
    debut
    	si(n==NULL)
    		retourner -1
    	finsi
    	pour i allant de 1 à f //pour chaque fils où f est le nombre de fils
    		retourner (1+max(prof_3(i(n)))//la fonction max étant une fonction à définir qui permet de trouver la plus grande branche de chaque fils
    	finpour
    fin

  7. #7
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    raté
    ce serait plus un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Fonction prof_3(n=Arb):entier
    debut
      si(n==NULL)
         retourner -1
      finsi
      pour i allant de 1 à f //pour chaque fils où f est le nombre de fils
         retourner (1+max(fils(i),prof_3(n)))//la fonction max étant une fonction à définir qui permet de trouver la plus grande branche de chaque fils
      finpour
    fin
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    etudiant
    Inscrit en
    Avril 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 56
    Points : 32
    Points
    32
    Par défaut
    Merci de votre réponse, j'essaie de voir si celà correspond à mon problème
    Merci

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    etudiant
    Inscrit en
    Avril 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 56
    Points : 32
    Points
    32
    Par défaut
    Bonjour,

    Visiblement celà ne va pas car on explore les fils mais pas les frères d'un point

  10. #10
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 397
    Points
    9 397
    Par défaut
    Pourquoi dis-tu qu'on ne traite pas les frères ?
    Tu as implémenter cet algorithme, et ça buggue ? Et dans ce cas, montre nous ce que tu as fait.
    ou bien tu regardes l'algorithme, et tu ne vois pas par quel miracle ça pourrait marcher ?

    Parce que, pas de problème, on parcours bien tout l'arbre avec cet algorithme.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    etudiant
    Inscrit en
    Avril 2018
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 56
    Points : 32
    Points
    32
    Par défaut
    En effet, après plus de réflexion, je pense que l'on parcours tout l'arbre par récurvisité.
    Merci
    Reste à l'implémenter maintenant

Discussions similaires

  1. [Débutant] Algorithme de parcours en profondeur d'un Arbre N-aire
    Par geforce dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 21/02/2015, 11h31
  2. Parcours en profondeur - Déplacement de cubes
    Par Djakisback dans le forum Prolog
    Réponses: 4
    Dernier message: 16/11/2007, 18h51
  3. Parcours en profondeur d'un arbre n-aire
    Par Premium dans le forum Langage
    Réponses: 11
    Dernier message: 20/02/2006, 08h01
  4. [debutant] parcours en profondeur arbre n-aire
    Par tx dans le forum Langage
    Réponses: 1
    Dernier message: 15/02/2006, 03h56

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