Deletes given item from heap if present
(self, item: int)
| 88 | self._heapify_down(index) |
| 89 | |
| 90 | def delete_item(self, item: int) -> None: |
| 91 | """Deletes given item from heap if present""" |
| 92 | if item not in self.pos_map: |
| 93 | return |
| 94 | index = self.pos_map[item] |
| 95 | del self.pos_map[item] |
| 96 | self.arr[index] = self.arr[self.size - 1] |
| 97 | self.pos_map[self.arr[self.size - 1][0]] = index |
| 98 | self.size -= 1 |
| 99 | # Make sure heap is right in both up and down direction. Ideally only one |
| 100 | # of them will make any change- so no performance loss in calling both. |
| 101 | if self.size > index: |
| 102 | self._heapify_up(index) |
| 103 | self._heapify_down(index) |
| 104 | |
| 105 | def insert_item(self, item: int, item_value: int) -> None: |
| 106 | """Inserts given item with given value in heap""" |
no test coverage detected