|
@@ -14,24 +14,70 @@
|
|
|
/* --- Structure --- */
|
|
|
typedef struct al_node al_node;
|
|
|
struct al_node{
|
|
|
- char* key;
|
|
|
- int(*handler)(char*);
|
|
|
- al_node* prev;
|
|
|
- al_node* next;
|
|
|
+ char* key; //Clef d'accès
|
|
|
+ int(*handler)(char*); //Fonction
|
|
|
+ al_node* prev; //Noeud precedent
|
|
|
+ al_node* next; //Noeud suivant
|
|
|
};
|
|
|
typedef struct{
|
|
|
- al_node* first;
|
|
|
- al_node* last;
|
|
|
- int size;
|
|
|
+ al_node* first; //1er noeud
|
|
|
+ al_node* last; //Dernier noeud
|
|
|
+ int size; //Nombre de noeud
|
|
|
}arraylist;
|
|
|
|
|
|
/* --- Fonctions --- */
|
|
|
+/**
|
|
|
+ * Initialise une arraylist
|
|
|
+ * @param arraylist* Arraylist allouée
|
|
|
+ */
|
|
|
void arraylist_ini(arraylist*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Ajoute un noeud dans la liste
|
|
|
+ * Si un noeud du meme nom existe deja le remplace
|
|
|
+ * @param arraylist* Arraylist d'accueil
|
|
|
+ * @param char* clef
|
|
|
+ * @param int(*)(char*) Fonction
|
|
|
+ * @return al_node* Le noeud ajouté
|
|
|
+ */
|
|
|
al_node* arraylist_add(arraylist*, char*, int(*)(char*));
|
|
|
+
|
|
|
+/**
|
|
|
+ * Cherche un noeud
|
|
|
+ * @param arraylist* Arraylist utilisée pour la recherche
|
|
|
+ * @param char* La clef à chercher
|
|
|
+ * @return NULL|al_node* Le noeud ou null si introuvable
|
|
|
+ */
|
|
|
al_node* arraylist_search(arraylist*, char*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Appel la fonction d'un noeud
|
|
|
+ * @param arraylist* Arraylist du noeud
|
|
|
+ * @param char* Clef du noeud
|
|
|
+ * @param char* Argument pour la fonction
|
|
|
+ * @return int Resultat de la fonction ou -1 si introuvable
|
|
|
+ */
|
|
|
int arraylist_call(arraylist*, char*, char*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Supprime un noeud
|
|
|
+ * @param arraylist* Arraylist du noeud
|
|
|
+ * @param al_node* Le noeud à supprimer
|
|
|
+ */
|
|
|
void arraylist_delete(arraylist*, al_node*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Supprime un noeud identifié par une clef
|
|
|
+ * @param arraylist* Arraylist du noeud
|
|
|
+ * @param char* La clef du noeud
|
|
|
+ * @return Noeud correctement supprimé
|
|
|
+ */
|
|
|
boolean arraylist_remove(arraylist*, char*);
|
|
|
+
|
|
|
+/**
|
|
|
+ * Vide une Arraylist
|
|
|
+ * @param arraylist* Arraylist à vider
|
|
|
+ */
|
|
|
void arraylist_clean(arraylist*);
|
|
|
|
|
|
#endif /* ARRAYLIST_H */
|