@@ 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] |