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 :

liste chainée :suppression milieu par rapport à un caractère


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Points : 9
    Points
    9
    Par défaut liste chainée :suppression milieu par rapport à un caractère
    salut
    pour ma pti je dois faire une procédure suppression milieu. J'ai donc mis un indice que j'ai initialisé à 'a' .
    nom est un char
    donc tant que mon nom est inférieur à 'a' ....
    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
     
    ///////////////////////////////prcodédure supprimer milieu////////////////////////
    void liste::suppr_mil(char nom)
    {
    	poster *ptcourant;
    	poster *ptprec;
    	char i;
     
    	ptcourant=ptpremier;
    	i='a';
     
    	while ((i<nom)&&(ptcourant!=NULL))
    	{
    		ptprec=ptcourant;
    		ptcourant=ptcourant->get_ptsuivant();
    		i=i++;
    	}
    	if (ptcourant!=NULL)
    	{
    		ptprec->set_ptsuivant(ptcourant->get_ptsuivant());
    		delete ptcourant;
    	}
    };
    j'aimerais d'abord si cela se fait car ma procédure ne fonctionne pas (si ca se fait qu'estce qui ne va pas) et donc si je dois obligatoirement mettre i en entier et le comparer non pas au nom mais à un indice entier aussi.

    Merci de votre aide...

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Je ne comprend pas l'intêret d'une telle manip. A quoi correspond le caractère passé en paramètre ? Pour supprimer le second élément tu dois passer 'b' ? ...


    PS : i++ incrémente i, pas besoin de recopier le résultat encore une fois dans i après.

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    en fait j'ai des posters. J'en créé 2 puis je veux supprimer le second, pour cela je demande le nom du poster a supprimer qui est une lettre. Mon prog ne marche pas donc en fait je fais petit à petit donc je teste d'abord avec 2 posters mais le but apres si j'ai entré 10 posters, est de supprimer avec le nom donc par exemple supprimer le 'd'.

    Je viens de modifier ma procédure et j'ai réussi à la faire fonctionner en mettant "int i" et en comparant mon "i" qui s'incrémente non plus avec le nom de mon poster mais un indice et la ca fonctionne.

    Mais j'aurais préféré supprimer par le nom parce que si je réussi après au lieu que le nom soit une lettre je veux faire un pointeur pour mettre un mot et supprimer le mot (la lettre c'est juste en attendant).

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Dans ce cas il faut comparer le paramètre à chaque élément de ta liste, plutôt.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ((ptcourant != NULL) && (ptcourant->get_nom() != nom)) // attention à l'ordre des tests !
       {
          ptprec = ptcourant;
          ptcourant = ptcourant->get_ptsuivant();
       }
    Au fait, si ce n'est pas pour un exercice il y a déjà tout ça dans le standard (std::list).

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    ah ok merci !! je vais desuite essayer. Mais en fait c'est un action que je vais présenter au bts donc je peux pas utiliser un truc tout fait. Je me suis aisée d'un exo vu en cours mais j'ai changé pas mal de truc parceque l'exercice du type "automobile et vehicule" ils connaissent par coeur...

    Merci beaucoup en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Saut de ligne par rapport à un caractère
    Par anto2b dans le forum Android
    Réponses: 4
    Dernier message: 09/06/2012, 11h11
  2. Réponses: 10
    Dernier message: 18/09/2007, 14h00
  3. [access/vb.net] Suppression ligne par rapport date
    Par t1marlartiste dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/07/2007, 20h01
  4. Afficher les enregistrements par rapport à un caractère saisi
    Par issam47 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 05/06/2007, 16h16
  5. Réponses: 4
    Dernier message: 04/05/2007, 12h23

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