|  | @@ -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 */
 |