Use Comparator in heap.

This commit is contained in:
Oleksii Trekhleb
2018-04-12 08:25:19 +03:00
parent 953d9e0fb8
commit e05d159765
2 changed files with 9 additions and 18 deletions

View File

@@ -1,4 +1,5 @@
import MinHeap from '../heap/MinHeap';
import Comparator from '../../utils/comparator/Comparator';
// It is the same as min heap except that when comparing to elements
// we take into account not element's value but rather its priority.
@@ -6,6 +7,7 @@ export default class PriorityQueue extends MinHeap {
constructor() {
super();
this.priorities = {};
this.compare = new Comparator(this.comparePriority.bind(this));
}
add(item, priority = 0) {
@@ -13,7 +15,7 @@ export default class PriorityQueue extends MinHeap {
super.add(item);
}
compare(a, b) {
comparePriority(a, b) {
if (this.priorities[a] === this.priorities[b]) {
return 0;
}