3 /* Copyright (c) 2004 Arnaud Legrand. All rights reserved. */
5 /* This program is free software; you can redistribute it and/or modify it
6 * under the terms of the license (GNU LGPL) which comes with this package. */
12 #include "xbt/dynar.h" /* void_f_pvoid_t */
14 /** @addtogroup XBT_heap
15 * @brief This section describes the API to generic heap with O(log(n)) access.
17 * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]
18 * <tr><td><b>Prev</b> <td> [\ref XBT_swag]
19 * <tr><td> Next <td> </table></center>
22 /* @brief heap datatype */
23 typedef struct xbt_heap *xbt_heap_t;
25 xbt_heap_t xbt_heap_new(int num, void_f_pvoid_t free_func);
26 void xbt_heap_free(xbt_heap_t H);
27 int xbt_heap_size(xbt_heap_t H);
29 void xbt_heap_push(xbt_heap_t H, void *content, double key);
30 void *xbt_heap_pop(xbt_heap_t H);
32 double xbt_heap_maxkey(xbt_heap_t H);
33 void *xbt_heap_maxcontent(xbt_heap_t H);
36 #endif /* _XBT_HEAP_H */