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 d'un noeud dans un arbre


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 163
    Points : 102
    Points
    102
    Par défaut Suppression d'un noeud dans un arbre
    slt !

    je déprime ( lol ) , je suis depuis plusieurs heures sur un acces violation que je n'arrive pas à enlever .

    le code se trouve ici ( il est un peu long ) http://site.voila.fr/allbrain/arbre.zip

    à savoir , que je la ça plante qd j'affiche l'arborescence ! ( la suppression se déroule sans problèmes je pense ) et dans les cas suivants :

    -je supprime un noeud racine -> pas plantage

    - je supprime un noeud racine qui n'a qu'un seule enfant -> pas plantage

    - je supprime un noeud racine qui a deux enfants feuilles -> plantage
    - je supprime un noeud racine dont les enfants ne sont pas des feuilles -> pas plantage

    - je supprime un noeud qlqconque qui a deux enfants feuilles -> plantage

    le débogueur , me montre que l'acces violation est du à la ligne suivante dans affichageAidant(..) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    affichageAidant(totalEspace+5,ptr->ptrDroit);
    donc surement du à : ptr->ptrDroit ! ?

    encore une fois ,je pense que la suppression se déroule correctement , le pb se situe plutôt à l'affichage .

    Merci bcp , pr votre patience je sais que c pas facile de lire un code assez long et pas commenté :s
    http://amokrane-chentir.blogspot.com { Software engineering, .NET technologies, Imagine cup..}

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Le problème est bien dans ton algo d'effacement.

    Tel que construit, ptrRemplacementParent vaut forcément la même chose que ptr. Or à un moment, tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ptrRemplacement->ptrGauche = ptrRemplacementParent
    Suivi de

    Donc ptrRemplacement->ptrGauche correspond à une valeur invalide, qui fait planter l'affichage de l'arbre.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 163
    Points : 102
    Points
    102
    Par défaut
    Bien vu !

    qd je commente la ligne en question , plus d'accés violation mais je perds la branche gauche aussi !

    une solution , pr ce pb ?

    Et franchement merci , d'avoir pris la peine de lire le code c sympa
    http://amokrane-chentir.blogspot.com { Software engineering, .NET technologies, Imagine cup..}

Discussions similaires

  1. [JDOM] Insertion d'un Noeud dans un arbre JDOM
    Par Endy dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 09/06/2006, 15h00
  2. [C#]Comment avoir les fils d un noeud dans 1 arbre
    Par wodel dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/04/2006, 13h42
  3. inserer un noeud dans un arbre xml
    Par ujoodha dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 27/01/2006, 23h29
  4. Déplacer un noeud dans un arbre
    Par BigBenQ dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/10/2005, 15h16
  5. [VB.NET] [XML] Suppression d'un noeud dans un fichier XML
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/09/2004, 11h24

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