MinPQ: Removes and returns a smallest key on this priority queue MaxPQ: Removes and returns a largest key on this priority queue
(&mut self)
| 87 | /// MinPQ: Removes and returns a smallest key on this priority queue |
| 88 | /// MaxPQ: Removes and returns a largest key on this priority queue |
| 89 | pub fn dequeue(&mut self) -> Option<T> { |
| 90 | if self.n == 0 { |
| 91 | None |
| 92 | } else { |
| 93 | self.pq.swap(1, self.n); |
| 94 | self.n -= 1; |
| 95 | self.sink(1); |
| 96 | self.pq.pop() |
| 97 | } |
| 98 | } |
| 99 | |
| 100 | fn swim(&mut self, mut k: usize) { |
| 101 | while k > 1 && self.compare(k / 2, k) { |