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 :

changer la position de 2 noeuds


Sujet :

C

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut changer la position de 2 noeuds
    bonjour ;
    bon voila mon probleme je veut echanger la position des deux noued ieme et jeme alors j'ai ponsé a faire comme suite mais rien ne se passe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    pnoued *recherch(int i)
    { int a;
      pnoued temp;
    temp=tete;
      while(temp!=NULL && a<i)
         {  a++;
    	temp=temp->suiv;
          }
    return(&temp);
    }
     
    /*////////////////////////////////*/
    void inver(pnoued *i,pnoued *j)
    { pnoued temp1;
     
      temp1=(*i)->suiv;
      (*i)->suiv=(*j)->suiv;
      (*i)->suiv=temp1;
     
      temp1=*i;
      *i=*j;
      *j=temp1;
     
    }
    et a l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inver(recherch(i),recherch(j));
    merci pour votre aide

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Faudrait d'abord qu'on sache ce qu'est un noeud (et un pnoeud)

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut
    desolé j'ai oublié
    voila ma structure de base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct cellule
    	{
    	  int data;
    	  struct cellule *suiv;
    	}noud;
    typedef noud *pnoued;

  4. #4
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Citation Envoyé par lachose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void inver(pnoued *i,pnoued *j)
    { pnoued temp1;
      
      temp1=(*i)->suiv;
      (*i)->suiv=(*j)->suiv;
      (*j)->suiv=temp1;
    
      temp1=*i;
      *i=*j;
      *j=temp1;
    
    }

  5. #5
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    pnoued *recherch(int i)
    Pourquoi un * ?

    while(temp!=NULL && a<i)
    { a++;
    temp=temp->suiv;
    }
    a n'est jamais initialisé.

    void inver(pnoued *i,pnoued *j)
    { pnoued temp1;

    temp1=(*i)->suiv;
    (*i)->suiv=(*j)->suiv;
    (*i)->suiv=temp1;

    temp1=*i;
    *i=*j;
    *j=temp1;

    }
    Si i et j différent de NULL alors copier i->data dans j->data, et inversement.

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut
    je sait que cé la la plus facile methode est d'echangé l'information mais eske l'echange des noued de la maniere que jai fait est possible? .

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Ben, dans une liste simplement chaînée, c'est pas évident...

    PS:
    1°) On dit noeud ou nœud, mais certainement pas noued (Et au pluriel, ça prend un s)
    2°) Tu pourrais écrire lisiblement ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut
    ben merci pour la remarque sur lisibilité c'était un manque d'attention de ma part .

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    OK.

    Bon, pour en revenir aux choses sérieuses, c'est pas du tout évident d'échanger deux noeuds sur une liste simplement chaînée, puisqu'il faut retrouver les pointeurs qui pointent vers ces noeuds-là.


    C'est plus facile avec un chaînage double. À ce moment-là, tu devras garder à l'esprit qu'il y a deux cas différents: Celui où les éléments sont contigus, et celui où ils ne le sont pas (le premier étant l'exception et nécessitant un traitement spécifique).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut Remerciment
    ok merci bien je crois que j'ai saisi.
    vaut mieux ce simplifier la vie on passant a échanger l'information même dans le cas ou il y a trop de champs dans la structure de base.

Discussions similaires

  1. [DOM] changer le contenu d'un noeud
    Par thefaycal dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 06/08/2009, 13h47
  2. [XPATH] Position d'un noeud par rapport à la racine ?
    Par DemonKN dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 22/10/2008, 18h51
  3. [MFC]Changer la position du élement du menu
    Par annedjomo dans le forum MFC
    Réponses: 1
    Dernier message: 02/09/2005, 06h20
  4. position() relative au noeud courant
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 09/09/2004, 17h38
  5. TREEVIEW : Editer (changer le nom) d'un Noeud
    Par cyberlewis dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/07/2004, 15h00

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