Características de la implementación:
- Al construir el montón se debe pasar un boolean con valor true si se quiere que sea de máximos, sino será de mínimos.
- Los objetos se insertarán en el heap dentro de un envoltorio (collections.Heap.element) junto con una función que que acepte un parámetro y devuelva true si el objeto "envuelto" es menor que el parámetro.
- La estructura binaryHeap forma parte del módulo collections al que se irán añadiendo otras.
Lo siguiente es un ejemplo de su utilización:
var q = new collections.Heap(true);
function isSmallerFunction(other){
return this.value < other.value;
};
q.insert(new q.element(5, isSmallerFunction));
q.insert(new q.element(3, isSmallerFunction));
q.insert(new q.element(7, isSmallerFunction));
q.insert(new q.element(1, isSmallerFunction));
q.insert(new q.element(8, isSmallerFunction));
q.insert(new q.element(8, isSmallerFunction));
q.insert(new q.element(9, isSmallerFunction));
q.insert(new q.element(0, isSmallerFunction));
console.log(q.toString());
while(q.size > 0 ){
var aux = q.pop();
console.log(aux.value);
}
No hay comentarios:
Publicar un comentario