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

Langage C++ Discussion :

Arbre binaire de recherche en dissociant arbre et noeud


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 12
    Par défaut Arbre binaire de recherche en dissociant arbre et noeud
    Bonjour,

    actuellement étudiant en licence 2, j’enchaîne de la programmation en C++, liste chainée puis pile, file que j'ai réussi très facilement.
    Maintenant on est passé aux arbres notamment l'arbre binaire de recherche et j'ai vraiment un gros soucis de logique surtout
    qu'il faut suivre des contraintes dans la réalisation du TP.

    Je dois créer une classe ABR (arbre binaire de recherche)
    avec en attribut (clé, fils gauche, fils droit) donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    classe ABR
    {
         int clé;
         Noeud fils_gauche;
         Noeud fils_droite;
    };
    ainsi qu'une structure de Noeud qui vont définir les pointeurs de la classe ABR, j'ai fait un truc du genre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct Noeud
    {
        struct Noeud *gauche;
        struct Noeud *droite;
    } Noeud ;
    Mais je trouve cela très illogique et je comprends pas comment avancer par la suite. Je vois même pas comment faire le constructeur.
    J'ai déjà regardé plusieurs tutoriel sur internet mais ils ne montrent que des exemples avec une classe Arbre ou avec un Noeud directement.
    Ma contrainte et de dissocier arbre et noeud. Je suis un peu bloqué, si quelqu'un peut m'expliquer un peu mieux la logique.

    Je vois à quoi correspond un arbre, mais pas comment le créer en l'écrivant de cette manière.

    Merci

  2. #2
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    En effet, curieux concept.. Les contraintes que tu nous exposes ne font pas sens.

    Un arbre est, comme une liste chaînée, une structure récursive : tout nœud est lui-même un arbre ; un arbre est le résultat d'une agrégation d'arbres. On peut concevoir le besoin d'une structure englobante pour stocker des informations communes à tous les nœuds d'un tel « agrégat d'arbres », mais la clef n'en fait certainement pas partie.


    De plus, ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct Noeud
    {
        struct Noeud *gauche;
        struct Noeud *droite;
    } Noeud ;
    ...c'est du C. En C++ les définitions d'alias de type sont implicites : nul besoin de typedef, ou de struct dans les déclarations de variable. Enfin, en C++ moderne (C++0x et ultérieurs) on aurait déclaré std::unique_ptr<Noeud>.

Discussions similaires

  1. Arbre Binaire De Recherche
    Par dream_lover dans le forum C
    Réponses: 4
    Dernier message: 19/05/2007, 23h45
  2. Suppression dans un arbre binaire de recherche
    Par zeine77 dans le forum Langage
    Réponses: 1
    Dernier message: 11/05/2007, 20h40
  3. Réponses: 3
    Dernier message: 31/12/2005, 12h30
  4. Réponses: 11
    Dernier message: 07/04/2004, 13h06
  5. [Arbre binaire de Recherche]
    Par Giovanny Temgoua dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 06/02/2004, 11h45

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