Lines Matching refs:heap

23  * \brief Memory pool heap class.
37 * \brief Declare a template pool heap class.
38 * \param TYPENAME Type name of the declared heap.
39 * \param VALUETYPE Type of the value contained in the heap.
42 * This macro declares a pool heap with all the necessary functions for
46 * The functions for operating the heap are:
50 * int Heap_getNumElements (const Heap* heap);
51 * deBool Heap_reserve (Heap* heap, int size);
52 * void Heap_reset (Heap* heap);
53 * deBool Heap_push (Heap* heap, Element elem);
54 * Element Heap_popMin (Heap* heap);
67 DE_INLINE int TYPENAME##_getNumElements (const TYPENAME* heap) DE_UNUSED_FUNCTION; \
68 DE_INLINE deBool TYPENAME##_reserve (DE_PTR_TYPE(TYPENAME) heap, int capacity) DE_UNUSED_FUNCTION; \
69 DE_INLINE void TYPENAME##_reset (DE_PTR_TYPE(TYPENAME) heap) DE_UNUSED_FUNCTION; \
70 DE_INLINE void TYPENAME##_moveDown (DE_PTR_TYPE(TYPENAME) heap, int ndx) DE_UNUSED_FUNCTION; \
71 DE_INLINE void TYPENAME##_moveUp (DE_PTR_TYPE(TYPENAME) heap, int ndx) DE_UNUSED_FUNCTION; \
72 DE_INLINE deBool TYPENAME##_push (DE_PTR_TYPE(TYPENAME) heap, VALUETYPE elem) DE_UNUSED_FUNCTION; \
73 DE_INLINE VALUETYPE TYPENAME##_popMin (DE_PTR_TYPE(TYPENAME) heap) DE_UNUSED_FUNCTION; \
77 DE_PTR_TYPE(TYPENAME) heap = DE_POOL_NEW(pool, TYPENAME); \
78 if (!heap) \
80 heap->array = TYPENAME##Array_create(pool); \
81 if (!heap->array) \
83 return heap; \
86 DE_INLINE int TYPENAME##_getNumElements (const TYPENAME* heap) \
88 return TYPENAME##Array_getNumElements(heap->array); \
91 DE_INLINE deBool TYPENAME##_reserve (DE_PTR_TYPE(TYPENAME) heap, int capacity) \
93 return TYPENAME##Array_reserve(heap->array, capacity); \
96 DE_INLINE void TYPENAME##_reset (DE_PTR_TYPE(TYPENAME) heap) \
98 TYPENAME##Array_setSize(heap->array, 0); \
101 DE_INLINE void TYPENAME##_moveDown (DE_PTR_TYPE(TYPENAME) heap, int ndx) \
103 TYPENAME##Array* array = heap->array; \
127 DE_INLINE void TYPENAME##_moveUp (DE_PTR_TYPE(TYPENAME) heap, int ndx) \
129 TYPENAME##Array* array = heap->array; \
144 DE_INLINE deBool TYPENAME##_push (DE_PTR_TYPE(TYPENAME) heap, VALUETYPE elem) \
146 TYPENAME##Array* array = heap->array; \
151 TYPENAME##_moveUp(heap, numElements); \
155 DE_INLINE VALUETYPE TYPENAME##_popMin (DE_PTR_TYPE(TYPENAME) heap) \
157 TYPENAME##Array* array = heap->array; \
162 TYPENAME##_moveDown(heap, 0); \