Autor: Victor Acosta
Inserción
Cuando se llega a un árbol vacío se crea el nodo en el puntero que se pasa como parámetro por referencia, de esta manera los nuevos enlaces mantienen la coherencia. Si el elemento a insertar ya existe entonces no se hace nada.
void insertar(tarbol **a, int elem)
{
if (*a ==
NULL) {
*a = (arbol
*) malloc(sizeof(arbol));
(*a)->clave = elem;
(*a)->izq = (*a)->der = NULL;
}
else if
((*a)->clave < elem) insertar(&(*a)->der, elem);
else if
((*a)->clave > elem) insertar(&(*a)->izq, elem);
}
Para insertar un nuevo elemento se sitúa al final del vector (última hoja del árbol) y se asciende hasta que cumpla la propiedad.
Algoritmo Heapify
Llamada recursiva a Heapify para sus sub-árboles, si no cumplen con la propiedad del heap
Comentarios
Publicar un comentario