diff options
Diffstat (limited to 'rushs/tinyprintf/heap/print.c')
| -rw-r--r-- | rushs/tinyprintf/heap/print.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/rushs/tinyprintf/heap/print.c b/rushs/tinyprintf/heap/print.c new file mode 100644 index 0000000..f5bbe95 --- /dev/null +++ b/rushs/tinyprintf/heap/print.c @@ -0,0 +1,27 @@ +#include <stdio.h> +#include <stdlib.h> + +#include "heap.h" + +void print_rec(const struct heap *h, size_t i, int root) +{ + if (i >= h->size) + return; + if (!root) + printf(" "); + else + root = 0; + printf("%d", h->array[i]); + if (i == h->size - 1) + { + return; + } + print_rec(h, i * 2 + 1, root); + print_rec(h, i * 2 + 2, root); +} + +void print_heap(const struct heap *heap) +{ + print_rec(heap, 0, 1); + printf("\n"); +} |
