-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathliste.h
77 lines (61 loc) · 2.57 KB
/
liste.h
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
// liste.h
#ifndef LISTE
#define LISTE
#define faux 0
#define vrai 1
typedef int booleen;
typedef void Objet;
#define NONORDONNE 0
#define CROISSANT 1
#define DECROISSANT 2
// un �l�ment de la liste
typedef struct element {
Objet* reference; // r�f�rence un objet (de l'application)
Objet* priorite;
struct element* suivant; // �l�ment suivant de la liste
} Element;
// le type Liste
typedef struct {
Element* premier; // premier �l�ment de la liste
Element* dernier; // dernier �l�ment de la liste
Element* courant; // �l�ment en cours de traitement (parcours de liste)
int nbElt; // nombre d'�l�ments dans la liste
int type; // 0:simple, 1:croissant, 2:d�croissant
char* (*toString) (Objet*);
int (*comparer) (Objet*, Objet*);
} Liste;
void initListe (Liste* li, int type, char* (*toString) (Objet*),
int (*comparer) (Objet*, Objet*) );
void initListe (Liste* li);
Liste* creerListe (int type, char* (*toString) (Objet*),
int (*comparer) (Objet*, Objet*) );
Liste* creerListe (int type);
Liste* creerListe ();
booleen listeVide (Liste* li);
int nbElement (Liste* li);
void insererEnTeteDeListe (Liste* li, Objet* objet);
void insererEnFinDeListe (Liste* li, Objet* objet);
void insererEnTeteDeListe (Liste* li, Objet* objet, Objet* priority);
void insererEnFinDeListe (Liste* li, Objet* objet, Objet* priority);
void insererEnOrdre (Liste* li, Objet* objet, Objet* priority);
// parcours de liste
void ouvrirListe (Liste* li);
booleen finListe (Liste* li);
Objet* objetCourant (Liste* li);
void listerListe (Liste* li);
void listerListe (Liste* li, void (*f) (Objet*));
Objet* chercherUnObjet (Liste* li, Objet* objetCherche);
Objet* extraireEnTeteDeListe (Liste* li);
Objet* extraireEnFinDeListe (Liste* li);
booleen extraireUnObjet (Liste* li, Objet* objet);
void detruireListe (Liste* li);
void recopierListe (Liste* l1, Liste* l2);
booleen chercherUnObjetBis (Liste* li, Objet* objetCherche);
//Element* pPremier (Liste* li);
//Element* pDernier (Liste* li);
//Objet* pDernier (Liste* li);
//Element* pSuivant (Element* elt);
//void insererEnOrdreCout (Liste* li, int* accesseur,int* intcout);
// LISTE ORDONNEE
void insererEnOrdre (Liste* li, Objet* objet);
#endif