Algorithme de permutation de 2 éléments d'une liste simplement chaînée

Algorithme de permutation de 2 éléments d'une liste simplement chaînée - Algo - Programmation

Marsh Posté le 10-05-2006 à 16:04:53    

:hello:  
je cherche l'algo de permutation de deux elements d'uns liste simplement chaînée :heink:  
 
;)  

Reply

Marsh Posté le 10-05-2006 à 16:04:53   

Reply

Marsh Posté le 10-05-2006 à 16:05:37    

langage ?
environnement ?
 

Reply

Marsh Posté le 10-05-2006 à 16:12:11    

_darkalt3_ a écrit :

langage ?
environnement ?


pour le langage, j'utilise Ada,  
euh, pour l'environnement, je compile avec Gnat sur Gnu/Linux Debian et parfois avec ObjectAda sur Microsoft Windows


Message édité par Profil supprimé le 10-05-2006 à 16:15:23
Reply

Marsh Posté le 10-05-2006 à 16:13:26    

zut un message pour rien


Message édité par Profil supprimé le 10-05-2006 à 16:14:18
Reply

Marsh Posté le 10-05-2006 à 16:15:40    

et y'a quoi que tu comprends pas dans la manière de permuter des elements dans une liste chainée ?

Reply

Marsh Posté le 10-05-2006 à 16:17:21    

c'est pas que je comprend pas, c'est que je la connaîs pas ! Je l'ai oublié  :whistle:

Reply

Marsh Posté le 10-05-2006 à 16:22:43    

Ben si tu l'as compris ...
ou est le souci ?
 
C'est pas vraiment un algo ce genre de truc, c'est à toi de le coder et à voir une bonne manière de faire.

Reply

Marsh Posté le 10-05-2006 à 16:27:28    

Pourquoi me dis tu que je l'ai compris ?  :??:  
 
j'en suis la  

Code :
  1. Courant_Id_1 := Dans.Liste_Du_Taquin;
  2.      Courant_Id_2 := Dans.Liste_Du_Taquin;
  3.      while Courant_Id_1.Id_Jeton = Id_1 loop
  4.         Precedent_Id_1 := Courant_Id_1;
  5.         Courant_Id_1 := Courant_Id_1.Suivant;
  6.         Suivant_Id_1 := Courant_Id_1.Suivant;
  7.      end loop;
  8.      while Courant_Id_2.Id_Jeton /= Id_2 loop
  9.         Precedent_Id_2 := Courant_Id_2;
  10.         Courant_Id_2 := Courant_Id_1.Suivant;
  11.      end loop;
  12.  
  13.  
  14.      Tampon_Precedent := Precedent_Id_1;
  15.      Tampon_Courant := Courant_Id_1;
  16.      Tampon_Suivant := Suivant_Id_1;
  17.      Suivant_Id_1 := Suivant_Id_2;
  18.      Courant_Id_1 := Courant_Id_2;
  19.      Precedent_Id_1 := Precedent_Id_2;
  20.      Suivant_Id_2 := Tampon_Suivant;
  21.      Courant_Id_2 := Tampon_Courant;
  22.      Precedent_Id_2 := Tampon_Precedent;


 
mais ça marche pas evidement, alors je cherche a remplacer le deuxième bloc d'instruction

Reply

Marsh Posté le 10-05-2006 à 16:30:33    


 

Reply

Marsh Posté le 10-05-2006 à 16:35:19    

okokokok,
je suivais plus ...   :pt1cable:


Message édité par Profil supprimé le 10-05-2006 à 16:35:42
Reply

Marsh Posté le 10-05-2006 à 16:35:19   

Reply

Marsh Posté le 10-05-2006 à 16:44:28    

Il faudrait aussi que tu postes la déclaration de ton type liste et quelques commentaires pour qu'on sache ce que contiennent les différentes variables


---------------
TriScale innov
Reply

Marsh Posté le 10-05-2006 à 17:03:17    

Malheuresement mont type liste n'est pas tres bien implementé.  :pfff:  
c'est un pointeur sur un objet du type t_jeton
 

Code :
  1. type T_Jeton;
  2.   type T_Liste_De_Jeton is access T_Jeton;
  3.   type T_Tab_Jeton is array (Positive range <>,
  4.                              Positive range <> ) of T_Liste_De_jeton;
  5.   type T_Matrice(N : T_Borne_1;
  6.                  M : T_Borne_1) is
  7.      record
  8.         Tab_Jeton : T_Tab_Jeton(1..N,1..M) := (others => (others => null));
  9.         Id_Count : T_Borne_2 := 0;
  10.         k,l : T_Borne_1 := 1;
  11.      end record;
  12.  
  13.   type T_Jeton is
  14.      record
  15.         Suivant : T_Liste_De_Jeton;
  16.         Id_Jeton : T_Borne_2 := 0;
  17.         Id_Up : T_Borne_2 := 0;
  18.         Id_Down : T_Borne_2 := 0;
  19.         Id_Left : T_Borne_2 := 0;
  20.         Id_Right : T_Borne_2 := 0;
  21.         Image : T_Image;
  22.      end record;
  23.   type T_Taquin is-- new Ada.Finalization.Limited_Controlled with
  24.      record
  25.         Matrice    : T_Matrice(N,M);
  26. --       Vide_liste : T_Liste_De_Jeton;
  27. --       Vide_Jeton : T_Jeton;
  28.         Liste_Du_Taquin : T_Liste_De_Jeton := null;
  29.         Courant : T_Liste_De_Jeton := null;
  30. --       Precedant : T_Liste_De_Jeton;
  31.      end record;


 
j'essai de l'implementer des ce soir

Reply

Marsh Posté le 10-05-2006 à 17:10:30    

Citation :

Code :
  1. Courant_Id_1 := Dans.Liste_Du_Taquin;
  2.      Courant_Id_2 := Dans.Liste_Du_Taquin;
  3.      while Courant_Id_1.Id_Jeton = Id_1 loop
  4.         Precedent_Id_1 := Courant_Id_1;
  5.         Courant_Id_1 := Courant_Id_1.Suivant;
  6.         Suivant_Id_1 := Courant_Id_1.Suivant;
  7.      end loop;
  8.      while Courant_Id_2.Id_Jeton /= Id_2 loop
  9.         Precedent_Id_2 := Courant_Id_2;
  10.         Courant_Id_2 := Courant_Id_1.Suivant; -- copier / coller malheureux ???
  11.      end loop;
  12.  
  13.  
  14.      Tampon_Precedent := Precedent_Id_1;
  15.      Tampon_Courant := Courant_Id_1;
  16.      Tampon_Suivant := Suivant_Id_1;
  17.      Suivant_Id_1 := Suivant_Id_2;
  18.      Courant_Id_1 := Courant_Id_2;
  19.      Precedent_Id_1 := Precedent_Id_2;
  20.      Suivant_Id_2 := Tampon_Suivant;
  21.      Courant_Id_2 := Tampon_Courant;
  22.      Precedent_Id_2 := Tampon_Precedent;



 
t'aurais pas une faute de frappe à la ligne 10 ?

Code :
  1. Courant_Id_2 := Courant_Id_2.Suivant;


Message édité par franceso le 10-05-2006 à 17:11:21

---------------
TriScale innov
Reply

Marsh Posté le 10-05-2006 à 17:15:58    

en plus, je comprends pas comment tu pourrais échanger deux éléments de la liste entre les lignes 14 et 22 : tu ne fais que manipuler des variables locales. Il n'y a aucun accès à des membres du type "mon_jeton.Suivant"


---------------
TriScale innov
Reply

Marsh Posté le 10-05-2006 à 17:19:50    

Exactement ...  :)   :pt1cable: et je sais pas ou les mettre


Message édité par Profil supprimé le 10-05-2006 à 17:30:18
Reply

Marsh Posté le 10-05-2006 à 18:16:22    

A defaut, mais ça marche pas non plus, je copie la chaîne dans un tableau je permute dans le tableau est je reconstruit la chaîne

Reply

Marsh Posté le 11-05-2006 à 09:29:16    

en fait, cherche un tutoriel sur le net hein, y'en a des tonnes ... et reprend à la base.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed