liste double chainee et paquetage generique

liste double chainee et paquetage generique - Ada - Programmation

Marsh Posté le 07-12-2006 à 12:42:05    

Bonjour! je suis ravie d'avoir trouvé ce forum et cette partie consacrée au langage ADA, car on trouve rarement des gens qui s'y connaissent au contraire des autres langages...
 
Au fait... j'ai un projet ADA à preparer et j'ai besoin du maximum de conseils car je suis debutante... car j'ai envie de bien le reussir... pouvez vous m'aider à le generer?
 
il s'agit de faire un paquetage generique d'une liste doublement chainee, c'est à dire qui un curseur qui se balade dans la liste, ceci est permit car la liste contient un prededent un element et un suivant... voilà la difference avec une liste simple...
 
je vous remercie bcp bcp d'avance!
 
allez! on commence si vous voulez bien!  ;)  
 

Code :
  1. -- partie specification du programme
  2. GENERIC
  3.   type T is private;
  4.   with procedure aff_t (t:in T);
  5.  
  6. package P_listedb_gen is
  7.  
  8.   type liste_double is private;
  9.   LISTE_DB_VIDE : exception;
  10.  
  11. function creer_ldb_vide return liste_double;
  12. -- creer une liste vide
  13.  
  14. procedure afficher_ldb_curfin (cur: IN liste_double);
  15. --afficher une liste du curseur à la fin
  16.  
  17.  
  18. procedure afficher_ldb_debfin (cur: IN liste_double);
  19. --afficher une liste du debut à la fin
  20.  
  21. function copier_ldb_debfin (cur: IN liste_double) return liste_double;
  22. --copier une liste
  23.  
  24. --j'ajouterai d'autres une fois celle ci finies et une fois assurées que tout est bon
  25.  
  26. PRIVATE
  27.   type noeud;
  28.   type liste_double is access noeud;
  29.   type noeud is record
  30.     val: T;
  31.     precedent: liste_double
  32.     suivant: liste_double;
  33.   end record;
  34.  
  35. end P_listedb_gen;


Code :
  1. -- partie implementation du programme
  2. with text_io; use text_io;
  3. package body P_listedb_gen is
  4. PACKAGE entier is new integer_io(integer);
  5. USE entier;
  6.  
  7. --
  8. --
  9. --


Message édité par diwanet le 07-12-2006 à 20:51:19
Reply

Marsh Posté le 07-12-2006 à 12:42:05   

Reply

Marsh Posté le 07-12-2006 à 16:42:22    

Bonjour diwanet,
 
pour que ton code soit un peu plus lisible, tu peux mettre les balises ["code=ada"] [/"code"] sans les guillemets
 
Si non, quel est ton problème, maitrise tu les listes simplements chainées
 
a par ça, tu trouvera ici quelques exemple d'implementations, ensuite si tu a des difficultés pour les listes doublement chainées nous y reviendrons
 
Si non, moi je maitrise pas super, je me debrouille, donc pour faire dans les regles de l'art que je ne connait pas,  je ne peut rien. Mais bon sait-on jamais, si tu a des questions précises ou un code qui contien des erreurs, je me ferais un plaisir d'y jeter un coup d'oeuil.  :jap:

Reply

Marsh Posté le 07-12-2006 à 20:55:03    

voilà c'est bon j'ai changé la visualisation  :p  merci!
 
disons que je maitrise assez les listes simples, c'est sur que ça va ressembler enormement, mais là je ne sais pas si je dois mettre le curseur en enregistrement aussi, ou bien laisser le typage tel que je l'ai ecris?... au fait là j suis encore bloquée sur ce point pour l'instant... merci en tout cas

Reply

Marsh Posté le 07-12-2006 à 22:39:15    

diwanet a écrit :

voilà c'est bon j'ai changé la visualisation  :p  merci!
 
disons que je maitrise assez les listes simples, c'est sur que ça va ressembler enormement, mais là je ne sais pas si je dois mettre le curseur en enregistrement aussi, ou bien laisser le typage tel que je l'ai ecris?... au fait là j suis encore bloquée sur ce point pour l'instant... merci en tout cas


 
qu'entends-tu par "mettre en enregistrement" ?
 
(demain je revise, je jete un premier code pour me souvenir et je t'en dis plus sur ta structure)

Reply

Marsh Posté le 08-12-2006 à 13:12:06    

Bonjour diwanet,
Sachant qu'Ada garanti que les nouveaux pointeurs sont initialisés à null, et que ta procedure creer_ldb_vide consiste à retourner un pointeur null, celle-ci est a priori sans intéret. Donc je m'interroge  :??:  
 
Afficher un liste, quel soit double ou simple ne change rien.
 
Quant à la copie, elle consiste comme pour l'affichage à parcourir la liste du debut à la fin, en copiant l'element "val" de type T du type noeud.
 
En fonction de ce qui reste à faire, je vairai si ta structure reste adequate.
 
 

Reply

Marsh Posté le 08-12-2006 à 13:33:40    


j'ai peut-etre ecris de grosse betise, ... je prend la journé pour y reflechir, excuser moi. :heink:


Message édité par Profil supprimé le 08-12-2006 à 13:42:40
Reply

Marsh Posté le 08-12-2006 à 13:37:32    

Non, c'est ça, corrigez moi si je persite dans l'erreur.

Reply

Sujets relatifs:

Leave a Replay

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