Binary heaps ============ * <> * <> * <> !!ucw/heap.h [[example]] Example ------- static uint n; static int heap[4]; // Create an empty heap n = 0; #define MY_CMP(x, y) ((x) < (y)) // Insert 20, 10, 30 HEAP_INSERT(int, heap, n, MY_CMP, HEAP_SWAP, 20); HEAP_INSERT(int, heap, n, MY_CMP, HEAP_SWAP, 10); HEAP_INSERT(int, heap, n, MY_CMP, HEAP_SWAP, 30); // Remove the minimum (10) HEAP_DELETE_MIN(int, heap, n, MY_CMP, HEAP_SWAP); // Print the new minimum (20) printf("%d", heap[1]); // Increase the minimum to 40 HEAP_INCREASE(int, heap, n, MY_CMP, HEAP_SWAP, 1, 40); // Print the new minimum (30) printf("%d", heap[1]);