Bonjour,
Je suis amateur en programmation.
Je souhaite manipuler du texte stocké dans des listes.
Le code ci-dessous est la spécification de ma librairie.
Je voudrais vérifier avec vous si cette spécification est bien cohérente, excepté pour la procédure "Insert_Before_Current" que je souhaite éventuellement transformer en "insert_after_current" parce que je ne comprends plus pourquoi insérer avant et pas après et que ça me semble plus pratique... Si vous pouviez m'éclairer.
J'aurais souhaité savoir si j'oublie quelque chose d'essentiel et si vous aviez une librairie qui remplisse au moins les services que je spécifie ici, si vous vouliez bien la partager.
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 with Ada.Finalization; with Ada.Unchecked_deallocation; generic type T_Item is private; Null_Item : T_Item; package Generic_Doubly_Linked_Lists is type T_List Is limited private; function Length_Of (The_List : in T_List) return Integer; function Current_Content(The_List : in T_List) return T_Item; procedure Change_Current_Content(The_List:in out T_List; Item : in T_Item); procedure To_Head (The_List : in out T_List); procedure To_Queue (The_List : in out T_List); procedure To_Next (The_List : in out T_List); procedure To_Predecessor (The_List : in out T_List); procedure Fission_At_Current (The_List : in out T_List; Rest : out T_list); function In_Queue (The_List : in T_List) return Boolean; function In_Head (The_List : in T_List) return Boolean; procedure Insert_Before_Current (The_List : in out T_List; Item : in T_Item); procedure Suppress_Current (The_List : in out T_List); procedure Empty (The_List : in out T_List); private type T_Node; type Node_Access is access T_Node; type T_Node is record Item : T_Item; Prev : Node_Access; Next : Node_Access; end record; type T_List is new Ada.Finalization.Limited_Controlled with record Head, Current : Node_Access; Length : Natural := 0; end record; procedure free is new Ada.Unchecked_deallocation (T_Node, Node_Access); procedure Finalize(The_List : in out T_List) renames Empty; end Generic_Doubly_Linked_Lists;
Partager