Lines Matching refs:heap

20 		 * Duplicates are not allowed in the heap, so force an
63 heap_print(const heap_t *heap)
67 malloc_printf("vvv heap %p vvv\n", heap);
68 if (heap->ph_root == NULL)
71 node_print(heap->ph_root, 0);
73 for (auxelm = phn_next_get(node_t, link, heap->ph_root); auxelm != NULL;
82 malloc_printf("^^^ heap %p ^^^\n", heap);
114 heap_validate(const heap_t *heap)
119 if (heap->ph_root == NULL)
122 nnodes += node_validate(heap->ph_root, NULL);
124 for (auxelm = phn_next_get(node_t, link, heap->ph_root); auxelm != NULL;
134 heap_print(heap);
140 heap_t heap;
142 heap_new(&heap);
143 assert_true(heap_empty(&heap), "Heap should be empty");
144 assert_ptr_null(heap_first(&heap), "Unexpected node");
149 node_remove(heap_t *heap, node_t *node)
152 heap_remove(heap, node);
158 node_remove_first(heap_t *heap)
160 node_t *node = heap_remove_first(heap);
172 heap_t heap;
195 /* Initialize heap and nodes. */
196 heap_new(&heap);
197 assert_u_eq(heap_validate(&heap), 0,
206 heap_insert(&heap, &nodes[k]);
209 assert_ptr_not_null(heap_first(&heap),
212 assert_u_eq(heap_validate(&heap), k + 1,
216 assert_false(heap_empty(&heap),
223 assert_u_eq(heap_validate(&heap), j - k,
225 node_remove(&heap, &nodes[k]);
226 assert_u_eq(heap_validate(&heap), j - k
232 node_remove(&heap, &nodes[k-1]);
233 assert_u_eq(heap_validate(&heap), k - 1,
240 node_t *node = node_remove_first(&heap);
241 assert_u_eq(heap_validate(&heap), j - k
254 node_t *node = heap_first(&heap);
255 assert_u_eq(heap_validate(&heap), j - k,
262 node_remove(&heap, node);
263 assert_u_eq(heap_validate(&heap), j - k
272 assert_ptr_null(heap_first(&heap),
274 assert_true(heap_empty(&heap), "Heap should be empty");