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

  FORUM HardWare.fr
  Programmation

  [C] Liste chaînées

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Liste chaînées

n°23616
z0rglub
Posté le 10-04-2001 à 13:20:33  profilanswer
 

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.

mood
Publicité
Posté le 10-04-2001 à 13:20:33  profilanswer
 

n°23618
z0rglub
Posté le 10-04-2001 à 13:22:29  profilanswer
 

http://www.z0rglubspirou.freesurf.fr/listechainee.jpg

n°23624
jupiler
Un cousin...
Posté le 10-04-2001 à 13:32:13  profilanswer
 

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?


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°23630
wouatouwou​atou
Posté le 10-04-2001 à 13:48:05  profilanswer
 

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


---------------
"C'est le boulot qu'on ne commence jamais qui est le plus long à terminer"
n°23631
wouatouwou​atou
Posté le 10-04-2001 à 13:49:52  profilanswer
 

au pasage utilise une variable temporaire ca devrai aider..


---------------
"C'est le boulot qu'on ne commence jamais qui est le plus long à terminer"
n°23639
z0rglub
Posté le 10-04-2001 à 14:11:11  profilanswer
 

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;  
}


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C] Liste chaînées

 

Sujets relatifs
[java-script] une liste dréroulante qui dépend d'une autre ....NT: liste des dlls chargées en mémoire ?
ASP - Liste des variables application et session utilisées[php/mysql] liste des tables d'une bdd
[HTML] Couleur de fond d'une liste-boxC++ => liste des messages windows captés par WindowProc??
Liens directs dans une liste déroulante en HTML[C] Listes chainées - le retour -
[C] Liste de fonctions par librairie ???VB : Liste une chaine de chaine et dire s'il y a un @ dans la chaine
Plus de sujets relatifs à : [C] Liste chaînées


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR