static void test_struct_key () { int value = 123456; class_fibonacci_heap_t *heap = new class_fibonacci_heap_t (INT_MIN); heap->insert (heap_key (1), &value); heap->insert (heap_key (10), &value); heap->insert (heap_key (100), &value); heap->insert (heap_key (1000), &value); ASSERT_EQ (1000, heap->min_key ().key); ASSERT_EQ (4, heap->nodes ()); heap->extract_min (); heap->extract_min (); ASSERT_EQ (10, heap->min_key ().key); heap->extract_min (); ASSERT_EQ (&value, heap->min ()); heap->extract_min (); ASSERT_TRUE (heap->empty ()); delete heap; }
void heap_push(void** arr, void* elem, size_t* len, int (*func)(void*,void*)){ arr[*len] = elem; heap_key(arr, *len, func); *len += 1; }