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

 


Dernière réponse
Sujet : [C] Liste chaînées
z0rglub Dans un premire temps, considérons qu'on prenne un élément dans la liste 1 et qu'on veuille rediriger le n° 3 vers la cellule avec le n° 1. J'ai fais ça, et ben ça marche pas !! Il enlève pas ce qu'il faut !
 
int deplacement (cellule* t1, cellule* t2, int numero_cherche)
{
 cellule* tempo; /* nouveau competiteur dans la liste des abandons */
 cellule* ancien;
 cellule* courant = t1;
 
 while (courant->suivant && (courant->suivant->numero != numero_cherche))
 {
  ancien = courant;
  courant = courant->suivant;
 }
 if(!(courant->suivant))
 {
  printf("\nCe numéro n'existe pas !\n" );
  return 1;
 }
 
 /* si on a trouvé une cellule avec ce numero*/
 ancien->suivant = courant->suivant;
 return 0;  
}

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
z0rglub Dans un premire temps, considérons qu'on prenne un élément dans la liste 1 et qu'on veuille rediriger le n° 3 vers la cellule avec le n° 1. J'ai fais ça, et ben ça marche pas !! Il enlève pas ce qu'il faut !
 
int deplacement (cellule* t1, cellule* t2, int numero_cherche)
{
 cellule* tempo; /* nouveau competiteur dans la liste des abandons */
 cellule* ancien;
 cellule* courant = t1;
 
 while (courant->suivant && (courant->suivant->numero != numero_cherche))
 {
  ancien = courant;
  courant = courant->suivant;
 }
 if(!(courant->suivant))
 {
  printf("\nCe numéro n'existe pas !\n" );
  return 1;
 }
 
 /* si on a trouvé une cellule avec ce numero*/
 ancien->suivant = courant->suivant;
 return 0;  
}
wouatouwouatou au pasage utilise une variable temporaire ca devrai aider..
wouatouwouatou En fait, c assez simple...
soit tes deux listes l1 et l2.
l1 a quatre elements e1,e2,e3,e4
l2 a trois elements e1,e2,e3
 
tu veux inserer l2.e2 dans l1 (reste a voir ou !!!). Supposons en tete de liste, pour ke ce soit simple. :D
 
tu fait donc:
 
l2.e2.suivant = l1.e1
l2.e1.suivant = l2.e3
c tout !!
 
Bon, l'algo c : Supposons ke tu veuilles inserer ton elt a la nieme position. Alors, le champ 'suivant' du nieme elt, tu le fais pointer sur ton nouvel elt, apres avoir fait pointer le champ 'suivant' de ton nouvel elt sur le n+1eme elt (soit le suivant de ton nieme elt).  Apres fo ke tu regarde les cas de bord (tete, feuille, etc.)
J'espere ke c assez clair, et bon courage :D
jupiler supposons que tu as une structure "element" avec un membre
"suivant".
 
tu fais un truc dans le genre:
 
chaine1element3.suivant = chaine1element1
 
chaine1element2.suivant = chaine2element2
chaine2tete = chaine1element2
 
c'est clair la?
z0rglub http://www.z0rglubspirou.freesurf.fr/listechainee.jpg
z0rglub salut, je vous ai préparé un petit dessin pour vous exposer mon probleme :
http://www.z0rglubspirou.freesurf.fr/listechainée.jpg  
pour être clair, je veux pouvoir prendre un élément de la liste 1 et le mettre dans la liste 2. Pour ce je rentre le n° de l'élément de la liste à copier dans la liste 2. LE Truc c'est de pas recopier la cellule mais d'organiser une redirection. Mais je bosse dessus et j'arrive vraiment pas. Si vous pouviez m'aider à réaliser l'algo... je serais super reconnaissant.

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