68 lines
1.2 KiB
Text
68 lines
1.2 KiB
Text
#include "config.h"
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
/**
|
|
* heap - a simple heap implementation
|
|
*
|
|
* Each heap entry is added as a void pointer. This means the implementation
|
|
* does _not_ assume you already have an array of entries. Instead, it keeps
|
|
* an internal array of pointers to those entries.
|
|
*
|
|
* Example:
|
|
* #include <stdio.h>
|
|
*
|
|
* #include <ccan/heap/heap.h>
|
|
*
|
|
* static bool less(const int *i, const int *j)
|
|
* {
|
|
* return *i < *j;
|
|
* }
|
|
*
|
|
* static bool __less(const void *i, const void *j)
|
|
* {
|
|
* return less(i, j);
|
|
* }
|
|
*
|
|
* int main(int argc, char *argv[])
|
|
* {
|
|
* struct heap *h;
|
|
* int arr[] = {1, 0, 2};
|
|
* int i;
|
|
*
|
|
* h = heap_init(__less);
|
|
* if (h == NULL) {
|
|
* perror("heap alloc");
|
|
* exit(1);
|
|
* }
|
|
*
|
|
* for (i = 0; i < 3; i++) {
|
|
* if (heap_push(h, &arr[i])) {
|
|
* perror("heap push");
|
|
* exit(1);
|
|
* }
|
|
* }
|
|
* // should print 0, 1, 2
|
|
* for (i = 0; i < 3; i++) {
|
|
* int *v = heap_pop(h);
|
|
* printf("%d\n", *v);
|
|
* }
|
|
* heap_free(h);
|
|
* return 0;
|
|
* }
|
|
*
|
|
* License: BSD-MIT
|
|
* Author: Emilio G. Cota <cota@braap.org>
|
|
*/
|
|
int main(int argc, char *argv[])
|
|
{
|
|
/* Expect exactly one argument */
|
|
if (argc != 2)
|
|
return 1;
|
|
|
|
if (strcmp(argv[1], "depends") == 0) {
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|