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

C++ Discussion :

suppression dans un b-arbres


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    68
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 68
    Par défaut suppression dans un b-arbres
    Bonjour à tous. voilà actuellement j'essaie d'implémenter les b-arbres(b-tree) en c++ jusque la j'ai pu faire la recherche et l'ajout mais quant à la suppression si quelqu'un pouvait m'aider en me donnant le code cela me ferait très plaisir. En faite je sais comment fonction la suppression mais je n'arrive pas à l'implémenter. merci d'avance
    voila la structure de mon b-arbre, c'est un b-arbre d'ordre 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // declaration structure noeud
    #define M 5
    struct noeud
    {   
          int n;    //le nombre de valeur réelles contenues dans le noeud
          int cle[M-1];   //la liste des valeur dans le noeud
          struct noeud *p[M];   //la liste de pointeurs fils
          bool y;   //si le noeud est une feuille
    }*racine=NULL;

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par défaut
    Tu vas te faire gronder
    Il faut utiliser la balise "code".

    Tu pourrais pas faire des b+tree à la place ? C'est plus mieux .

    EDIT: grillé pour la balise.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 188
    Par défaut
    Bonjour,

    Citation Envoyé par camboui Voir le message
    Tu pourrais pas faire des b+tree à la place ? C'est plus mieux .
    heu les b+tree n'ont pas du tout la même sémantique (si c'est bien se que je pense)

    sinon tu veux supprimer ton arbre entier ou bien juste un nœud ?

    EDIT:
    arf si c'est un b-arbre il y a pas de suppression d'un seul nœud a priori.
    donc je suppose que c'est tout l'arbre (ou un étage ?)

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 188
    Par défaut
    voila a quoi sa doit ressembler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void supprimerArbre(noeud * n){
        if (n != NULL){
            for (int i = 0 ; i < M ; i++){
                supprimerArbre(n->p[i])
            }
            delete n;
        }
    }

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    68
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 68
    Par défaut
    en faite c'est supprimer un seul élément d'un nœud. mais le problème se pose si le nœud ne contient que un nombre d'élément égale a l'ordre de se arbre il faudra le consolider. aussi si la racine ne possède qu'un seule élément et qu'on le supprime on risque de perdre tout l'arbre.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 188
    Par défaut
    Citation Envoyé par atttchoum Voir le message
    heu les b+tree n'ont pas du tout la même sémantique (si c'est bien se que je pense)
    bon en fait je suis complètement à l'ouest j'ai confondus avec les arbres équilibrés

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 53
    Par défaut
    bonjour
    svp c'est quoi l'ordre d'un arbre B??

  8. #8
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par atttchoum Voir le message
    bon en fait je suis complètement à l'ouest j'ai confondus avec les arbres équilibrés
    Les B-Tree (et les innombrables variantes) c'est une famille d'arbres equilibres (le b, c'est balanced). Ce ne sont pas des arbres binaires.

Discussions similaires

  1. Suppression dans un arbre binaire de recherche
    Par allomona dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 06/12/2014, 08h51
  2. Problème de suppression dans un arbre binaire ordonné
    Par Odenelle dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 04/01/2014, 13h18
  3. Problème suppression dans un arbre
    Par TrexXx dans le forum Débuter
    Réponses: 2
    Dernier message: 25/01/2009, 14h35
  4. Suppression dans un arbre binaire de recherche
    Par zeine77 dans le forum Langage
    Réponses: 1
    Dernier message: 11/05/2007, 20h40
  5. [LG]suppression dans un fichier
    Par cedrick essale dans le forum Langage
    Réponses: 5
    Dernier message: 10/08/2003, 15h22

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