Beispiel #1
0
/* Elimina el heap, llamando a la función dada para cada elemento del mismo.
 * El puntero a la función puede ser NULL, en cuyo caso no se llamará.
 * Post: se llamó a la función indicada con cada elemento del heap. El heap
 * dejó de ser válido. */
void heap_destruir(heap_t *heap, void destruir_elemento(void *e)){
	if (destruir_elemento)
		for (size_t i = 0; i < heap->cant; i++)
			destruir_elemento(heap->datos[i]);
	
	free(heap->datos);
	free(heap);
}
Beispiel #2
0
bool heap_destruir(heap_t *heap, void destruir_elemento(void *e)){
	if (heap==NULL) return false;
	int i;
	if (destruir_elemento){
		for(i=0;i<heap->cantidad;i++){
			destruir_elemento(heap->datos[i]);
			}
		}
	free(heap->datos);
	free(heap);
	return true;
	}