Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3786 connectés 

 


Dernière réponse
Sujet : [C] liste chainées de l'aide pitier lol
qxn c enorme les amis je v enfin avoir un suports pour bosser bein en tout k je vous remercie bcp de m'avoir fournit des exemples now reste plus qua bosse merci enkore :)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
qxn c enorme les amis je v enfin avoir un suports pour bosser bein en tout k je vous remercie bcp de m'avoir fournit des exemples now reste plus qua bosse merci enkore :)
AlphaT ***** FONCTION ObtenirNumero *****
**********************************
void ObtenirNo(int * No)
{
 clrscr();
 printf("  No >" );
 scanf("%d", &(*No) );
}
AlphaT Voici un exemple de suppression d'un élément dans une liste chainée. Il faut trouve l'élément dans la liste avant de l'enlever, exemple structure étudiant :
 
struct Etudiant {
int No;  
char Nom[10];
char Prog[10];
struct Etudiant * Suivant ;
};
 
typedef struct Etudiant typEtud ;
 
**** Dans le main y a ça :
void main()
{
typEtud * lstEtud = NULL ;     //liste des étudiants
typEtud * Etud = NULL ;        //pointeur sur un étudiant
 
do
  {
   switch ( AffMenu() )
   {
    case 1:
    ObtenirNo(&No);
    if ( Trouve(lstEtud, No, &Etud))
      RetirerMaillon(&lstEtud,Etud);
    else
      RefuserSuppression();
    break;
   }
  }
  while ( ! Quitter );
  QuitterProg();
}
       
 
**** FONCTION RETIRER ELEMENT *****
************************************
void RetirerMaillon( struct Etudiant * * Liste,  
struct Etudiant  * Pred)
{
 Struct Etudiant * Trouve;
 if (Pred == NULL)           //si c'est le premier
   {
    Trouve = *Liste ;
    *Liste = (*Liste)->Suivant;
   }
 else
   {  
    Trouve = Pred->Suivant ;     //retirer de la liste
    Pred->Suivant = Trouve->Suivant ;
   }
  free(Trouve);        // retourner la mémoire au OS
}
 
***** FONCTION TROUVE ******
****************************
int Trouve(struct Etudiant * * Liste, int No,
struct Etudiant * * Pred)
{
 typEtud * Ptr;
 *Pred = NULL;   //par défaut
 if ( Liste == NULL)
   return 0;     // pas trouvé
 else
 {
  Ptr = Liste;
  while ( (Ptr != NULL) && (Ptr->No != No) ) <
  {
   *Pred = Ptr ;
   Ptr = Ptr->Suivant;
  }
 if (Ptr == NULL)
   return 0;  
 else  
   return 1;   //On l'a trouvé
 }
}

 

[edtdd]--Message édité par AlphaT--[/edtdd]

godbout j'te donne un p'tit ex:
 
tu definis ta struct
 
typedef struct tagPOINT
{
 int x;
 int y
 struct tagPOINT *next;
}POINT, *PTRPOINT;
 
ensuite tu codes:
 
PTRPOINT listeHead = NULL;
PTRPOINT listeNew = NULL;
 
//si la liste est vide
if (listeHead == NULL)
{
 listeNew = (PTRPOINT) malloc (sizeof(POINT));
 listeNew->x = abscisse;
 listeNew->y = ordonnee;
 listeNew->next = NULL;
 listeHead = listeNew;
}
// si la liste n'est pas vide, on ajoute en queue
else
{
 listeNew->next = (PTRPOINT) malloc (sizeof(POINT));
 listeNew = listeNew->next;
 listeNew->x = abscisse;
 listeNew->y = ordonnee;
 listeNew->next = NULL;
}
 
En gros ca c'est pour une liste que tu prends d'un coup, apres si tu dois inserer ailleurs, ou plus tard, il te faut un pointeur courant.
C'est pas tres dur.
 
Voila...:)
qxn voila alors j'ai fais un prog ki calcul en se servant d'une pile ( un tablo ou on fou la pile apres on fais repointer le pointeur tete vers la nouvelles cases ...) mais la je dois modifier mon prog et utiliser des liste chainés pour fair ca je comprends tout a fait le principe mais coder kke chose est carrement impossible alors si kkun aurais un bon tutor la dessus ou pourrai me montrer un chti exemple pas trop dure du genre on met 2 nombres dans des maillons de la chaine en faire la somme et pi enlever/rajouter un maillon bein merci d'avance pour votre aide

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)