Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MinHeap:
- def __init__(self, arr):
- self.arr = arr[:]
- # make sure self.arr is a heap
- n = len(arr)
- for i in range(n-1,-1,-1):
- #call heapify
- while True:
- index_parent = (i - 1) // 2# calculate this
- if self.arr[index_parent] > self.arr[i]:
- self.arr[index_parent], self.arr[i] = self.arr[i], self.arr[index_parent]
- i = index_parent
- continue
- break
- def peek(self):
- return self.arr[0]
- def remove(self):
- element = self.arr.pop(0)
- # make sure self.arr is a heap
- return element
- def insert(self, element):
- self.arr.append(element)
- # make sure self.arr is a heap
- index_element = len(self.arr) - 1
- # 1
- # 3 75
- # 20 8
- # Test case
- heap = MinHeap([75,8,3,20,32,1])
- print(heap.peek()) # => 1
- print(heap.remove()) # => 1
- print(heap.remove()) # => 3
- print(heap.insert(9)) # => nil
- print(heap.remove()) # => 8
- print(heap.peek()) # => 9
- '''
- [75,8,3,20,32,1]
- n = 6
- for 3 to 0:
- '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement