1. #1
    Nouveau membre du Club
    Inscrit en
    août 2010
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : août 2010
    Messages : 46
    Points : 39
    Points
    39

    Par défaut représentation d'une arbre n-aire

    bonsoir,
    comment représenter une structure adéquate pour les arbre n-aire ?
    est ce qu'on a besoin d'information sur les frères d'un noeud ou bien il faut just des infos sur les fils comme ca ?
    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    struct Noeud 
     
    {
     
     int info;
     
     Liste* fils
     
    }

  2. #2
    Membre émérite
    Inscrit en
    mars 2005
    Messages
    957
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 957
    Points : 2 790
    Points
    2 790

    Par défaut

    Il n'y a pas de solution universelle, tout dépend de la manière dont tu prévois de construire, altérer, interroger ton arbre..

    Un arbre n-aire peut être représenté tel que tu le proposes ou alternativement transformé en arbre binaire puis cousu, par exemple.

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    décembre 2015
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : décembre 2015
    Messages : 440
    Points : 1 970
    Points
    1 970

    Par défaut

    Bonjour,
    On peut décomposer un arbre n-aire de plusieurs manières. Un objet unique avec tous les liens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    struct Noeud1 {
       int  info;
       struct Noeud1 *frereSuivant;
       struct Noeud1 *premierFils;
    };
    On peut aussi utiliser 2 objets différents comme tu le proposes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    struct Liste {
       struct Liste*  suivant;
       struct Noeud2* noeud;
    };
    struct Noeud2 {
       int  info;
       struct Liste* fils;
    };
    Ou d'autres combinaisons, ou des transformations en arbres binaires.

  4. #4
    Nouveau membre du Club
    Inscrit en
    août 2010
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : août 2010
    Messages : 46
    Points : 39
    Points
    39

    Par défaut

    qu'est ce que vous pensez de cette représentation ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    struct Noeud 
     
    {
    int val; 
    Noeud * suivant; 
    Noeud * liste; 
    }

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    5 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 5 620
    Points : 15 200
    Points
    15 200
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par je viens du sud Voir le message
    qu'est ce que vous pensez de cette représentation ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    struct Noeud 
     
    {
    int val; 
    Noeud * suivant; 
    Noeud * liste; 
    }
    Ben que ça n'a de signification que pour toi. Parce que moi, je peux le voir comme un arbre binaire (chaque noeud ne connait que son fils droit et son fils gauche) ; ou bien comme un arbre "building" (chaque noeud connait la liste des noeuds de son niveau et aussi le noeud du niveau suivant) ; etc etc.

    Matt_Houston te l'a dit: on ne fait pas un arbre pour savoir ensuite à quoi on l'applique, on fait un arbre parce qu'on a déjà un truc à modéliser et que l'arbre en question le permettra...
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

Discussions similaires

  1. représentation d'un arbre lexicographique dans une console
    Par kahrah dans le forum Général Python
    Réponses: 2
    Dernier message: 05/12/2013, 23h54
  2. Représentation arbre n-aire en C++ et construction de l'arbre pendant l'algo MiniMax
    Par Cornellus1985 dans le forum Intelligence artificielle
    Réponses: 1
    Dernier message: 28/11/2010, 00h39
  3. Réponses: 0
    Dernier message: 06/08/2009, 15h40
  4. Transformation d'une chaine en arbre n-aire
    Par nicolas66 dans le forum Général Algorithmique
    Réponses: 2
    Dernier message: 03/06/2007, 09h55
  5. arbre n-aire delete
    Par Fry dans le forum C++
    Réponses: 13
    Dernier message: 19/10/2004, 21h22

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