123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /*
- * File: arraylist.h
- * Author: Arthur Brandao
- *
- * Created on 14 novembre 2018
- */
- #ifndef ARRAYLIST_H
- #define ARRAYLIST_H
- /* --- Include --- */
- #include "constante.h"
- /* --- Structure --- */
- typedef struct al_node al_node;
- struct al_node{
- 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; //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 */
|