Liste doublement chaînée
na
-
Du crétin, te moquer point tu ne dois -
Du crétin, te moquer point tu ne dois -
Bonjour,
j'ai essayé de créer une fonction qui supprimerait un élément donné de ma liste mais ma fonction supprime tous les éléments compris entre le début de la liste et l'élément que je veux supprimer. Pourriez-vous m'aider à trouver mon erreur svp ? Merci.
Voilà les structures que j'utilise et ma fonction :
j'ai essayé de créer une fonction qui supprimerait un élément donné de ma liste mais ma fonction supprime tous les éléments compris entre le début de la liste et l'élément que je veux supprimer. Pourriez-vous m'aider à trouver mon erreur svp ? Merci.
Voilà les structures que j'utilise et ma fonction :
typedef struct boule{
SDL_Surface *image;
struct boule *suivant;
struct boule *precedent;
SDL_Rect position;
int valeur;
} BOULE;
typedef struct cortege{
BOULE *debut;
BOULE *fin;
int taille;
} CORTEGE;
void supprimer_boule(CORTEGE *cort, BOULE *boul)
{
if (cort!= NULL)
{
BOULE *courant= malloc(sizeof(BOULE));
courant=cort->debut;
while(courant!=NULL)
{
if(courant==boul)
{
if(courant->suivant==NULL)
{
cort->fin=courant->precedent;
free(courant);
}
else if (courant->precedent==NULL)
{
cort->debut=courant->suivant;
cort->debut->precedent=NULL;
free(courant);
}
else
{
courant->suivant->precedent=courant->precedent;
courant->precedent->suivant=courant->suivant;
free(courant);
}
cort->taille =cort->taille-1;
break;
}
else
{
courant=courant->suivant;
}
}
}
A voir également:
- Liste doublement chaînée
- Liste déroulante excel - Guide
- Liste code ascii - Guide
- Liste déroulante en cascade - Guide
- Site dangereux liste - Guide
- Voir liste d'amis facebook - Guide