Beispiel #1
0
extern gdsl_interval_heap_t
gdsl_interval_heap_delete_max (gdsl_interval_heap_t heap)
{
    gdsl_element_t e = gdsl_interval_heap_remove_max (heap);

    if (e == NULL)
	{
	    return NULL;
	}

    heap->free_f (e);
    return heap;
}
Beispiel #2
0
extern void
gdsl_interval_heap_flush (gdsl_interval_heap_t heap)
{
    ulong i;

    assert (heap != NULL);

    for (i = 1; i < heap->card; i++)
	{
	    heap->free_f (heap->nodes [ LAST_INDEX(i)] );
	}

    heap->card = 0;
}
Beispiel #3
0
extern void
gdsl_interval_heap_free (gdsl_interval_heap_t heap)
{
    ulong i;

    assert (heap != NULL);

    if (heap->name != NULL)
	{
	    free (heap->name);
	}

    for (i = 1; i < heap->card; i++)
	{
	    heap->free_f (heap->nodes [ LAST_INDEX(i) ]);
	}

    free ( heap->nodes );
    free (heap);
}