#ifndef lib_set_h #define lib_set_h /* Cesar project {{{ * * Copyright (C) 2007 Spidcom * * <<>> * * }}} */ /** * \file lib/set.h * \brief Set of ordered data service. * \ingroup lib * * A set is a ordered binary tree structure. * * It defines the following set of operations efficiently: * - insert an element, * - find an element, * - remove an element, * - travel the set in order. */ /* Forward declaration. */ typedef struct set_node_t set_node_t; /** * Set node comparison function pointer. * \param left left hand node * \param right right hand node * \return true iff left is lesser than right */ typedef bool (*set_node_less_t) (set_node_t *left, set_node_t *right); /** Set structure. */ struct set_t { /** Set root node. */ set_node_t *root; /** Set "is lesser than" comparison function. */ set_node_less_t less; }; typedef struct set_t set_t; #include "lib/aatree.h" #endif /* lib_set_h */