liste_double.h
1.88 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#if ! defined (LISTE_DOUBLE_H)
#define LISTE_DOUBLE_H 1
#include <stdbool.h>
/**********************************************************************
* IMPLANTATION
*
* Spécification de l'implantation
*
* Implantation des listes simplement chaînées de doubles
*
* Les maillons sont alloués dynamiquement.
* Le champ next du dernier maillon vaut (struct maillon_double*)0
*
* Le champ tete d'une liste pointe vers le premier maillon
* Le champ nbelem est égal au nombre de maillons de la liste
* La liste vide est codée par (tete, nbelem) = ((struct maillon_double*)0, 0)
*
* Des listes distinctes ont des maillons distincts (pas de maillon partagé).
**********************************************************************/
struct maillon_double
{ double value;
struct maillon_double* next;
};
struct liste_double
{ struct maillon_double* tete;
int nbelem;
};
/**********************************************************************
* PROTOTYPES DES FONCTIONS (TYPE ABSTRAIT)
**********************************************************************/
/*
* Constructeur. Initialise son paramètre à la liste vide
*/
extern void init_liste_double (struct liste_double*);
extern bool recherche_liste_double (struct liste_double* , double );
/*
* Destructeur
*/
extern void clear_liste_double (struct liste_double*);
/*
* Affecte une copie de src à dst
*/
extern void set_liste_double
(struct liste_double* dst, struct liste_double* src);
/*
* Ajout d'un double en tête de liste
*/
extern void ajouter_en_tete_liste_double (struct liste_double*, double);
/*
* Affecte à *d la valeur du premier élément de L et supprime cet élément de L.
* La liste L est supposée non vide.
*/
extern void extraire_tete_liste_double (double* d, struct liste_double* L);
/*
* Impression.
*/
extern void imprimer_liste_double (struct liste_double*);
#endif