| @@ 228-234 (lines=7) @@ | ||
| 225 | child = 2 * k |
|
| 226 | if child < self.N and less(self.keys[self.pq[child]], self.keys[self.pq[child+1]]): |
|
| 227 | child = child+1 |
|
| 228 | if less(self.keys[self.pq[child]], self.keys[self.pq[k]]): |
|
| 229 | exchange(self.pq, k, child) |
|
| 230 | self.qp[self.pq[k]] = k |
|
| 231 | self.qp[self.pq[child]] = child |
|
| 232 | k = child |
|
| 233 | else: |
|
| 234 | break |
|
| 235 | ||
| 236 | def is_empty(self): |
|
| 237 | return self.N == 0 |
|
| @@ 198-204 (lines=7) @@ | ||
| 195 | def swim(self, k): |
|
| 196 | while k > 1: |
|
| 197 | parent = k / 2 |
|
| 198 | if less(self.keys[self.pq[k]], self.keys[self.pq[parent]]): |
|
| 199 | exchange(self.pq, k, parent) |
|
| 200 | self.qp[self.pq[k]] = k |
|
| 201 | self.qp[self.pq[parent]] = parent |
|
| 202 | k = parent |
|
| 203 | else: |
|
| 204 | break |
|
| 205 | ||
| 206 | def get(self, index): |
|
| 207 | return self.keys[index] |
|