Binary-Heap: update in-place

This commit is contained in:
Slava Kim
2014-02-21 18:19:13 -08:00
parent 1dc172696f
commit f38294b173

View File

@@ -130,14 +130,16 @@ _.extend(MaxHeap.prototype, {
if (self.has(id)) {
if (self.get(id) === value)
return;
else {
self.remove(id);
}
}
self._heapIdx.set(id, self._heap.length);
self._heap.push({ id: id, value: value });
self._upHeap(self._heap.length - 1);
var idx = self._heapIdx.get(id);
self._heap[idx].value = value;
self._upHeap(idx);
self._downHeap(idx);
} else {
self._heapIdx.set(id, self._heap.length);
self._heap.push({ id: id, value: value });
self._upHeap(self._heap.length - 1);
}
},
remove: function (id) {
var self = this;