#include "ens_ordonne.h" #include "list.h" #include "memoire.h" #include #include #include struct ens_ordonne { list l; size_t cardinal; list curseur; size_t position; comparer cmp; }; ens_ordonne eo_creer (comparer cmp) { ens_ordonne eo = mem_malloc (sizeof (struct ens_ordonne)); eo->curseur = eo->l = NULL; eo->position = eo->cardinal = 0; eo->cmp = cmp; return eo; } size_t eo_cardinal (ens_ordonne eo) { assert (eo != NULL); return eo->cardinal; } void eo_ajouter_element (ens_ordonne eo, void *elt) { } void * eo_supprimer_element (ens_ordonne eo, comparer cmp, void *parametre) { } void * eo_ieme (ens_ordonne eo, size_t i) { assert (eo != NULL && i <= eo->cardinal); if (eo->curseur == NULL || i < eo->position) { eo->curseur = eo->l; eo->position = 1; } for (; eo->position != i; eo->position++) eo->curseur = eo->curseur->next; return eo->curseur->element; }