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

  FORUM HardWare.fr
  Programmation
  Algo

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1363477
Profil sup​primé
Posté le 10-05-2006 à 16:04:53  answer
 

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

mood
Publicité
Posté le 10-05-2006 à 16:04:53  profilanswer
 

n°1363480
_darkalt3_
Proctopathe
Posté le 10-05-2006 à 16:05:37  profilanswer
 

langage ?
environnement ?
 

n°1363502
Profil sup​primé
Posté le 10-05-2006 à 16:12:11  answer
 

_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
n°1363505
Profil sup​primé
Posté le 10-05-2006 à 16:13:26  answer
 

zut un message pour rien


Message édité par Profil supprimé le 10-05-2006 à 16:14:18
n°1363512
_darkalt3_
Proctopathe
Posté le 10-05-2006 à 16:15:40  profilanswer
 

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

n°1363515
Profil sup​primé
Posté le 10-05-2006 à 16:17:21  answer
 

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

n°1363533
_darkalt3_
Proctopathe
Posté le 10-05-2006 à 16:22:43  profilanswer
 

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.

n°1363541
Profil sup​primé
Posté le 10-05-2006 à 16:27:28  answer
 

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

n°1363552
_darkalt3_
Proctopathe
Posté le 10-05-2006 à 16:30:33  profilanswer
 


 

n°1363562
Profil sup​primé
Posté le 10-05-2006 à 16:35:19  answer
 

okokokok,
je suivais plus ...   :pt1cable:


Message édité par Profil supprimé le 10-05-2006 à 16:35:42
mood
Publicité
Posté le 10-05-2006 à 16:35:19  profilanswer
 

n°1363571
franceso
Posté le 10-05-2006 à 16:44:28  profilanswer
 

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
n°1363602
Profil sup​primé
Posté le 10-05-2006 à 17:03:17  answer
 

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

n°1363610
franceso
Posté le 10-05-2006 à 17:10:30  profilanswer
 

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
n°1363614
franceso
Posté le 10-05-2006 à 17:15:58  profilanswer
 

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
n°1363623
Profil sup​primé
Posté le 10-05-2006 à 17:19:50  answer
 

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


Message édité par Profil supprimé le 10-05-2006 à 17:30:18
n°1363679
Profil sup​primé
Posté le 10-05-2006 à 18:16:22  answer
 

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

n°1363957
_darkalt3_
Proctopathe
Posté le 11-05-2006 à 09:29:16  profilanswer
 

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


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

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

 

Sujets relatifs
Faire une liste déroulante évoluée...Remplir automatiquement un formulaire suivant un choix d'une liste ?
changer la couleur de fond d'une liste d'un répertoire..?algorithme de quine mc cluscky
[VBA EXCEL] Accéder aux éléments de dessin d'un graphique ExcelAfficher le contenu d'un tableau dans une liste deroulante
liste deroulante avec redirection automatiqueRecherche des deux plus grand éléments d'une liste : tournoi
Selection dans une Liste 
Plus de sujets relatifs à : Algorithme de permutation de 2 éléments d'une liste simplement chaînée


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