Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.19 KB | None | 0 0
  1. class MinHeap:
  2.     def __init__(self, arr):
  3.         self.arr = arr[:]
  4.         # make sure self.arr is a heap
  5.         n = len(arr)
  6.         for i in range(n-1,-1,-1):
  7.             #call heapify
  8.             while True:
  9.                 index_parent = (i - 1) // 2# calculate this
  10.                 if self.arr[index_parent] > self.arr[i]:
  11.                     self.arr[index_parent], self.arr[i] = self.arr[i], self.arr[index_parent]
  12.                     i = index_parent
  13.                     continue
  14.                
  15.                 break
  16.    
  17.     def peek(self):
  18.         return self.arr[0]
  19.    
  20.     def remove(self):
  21.         element = self.arr.pop(0)
  22.         # make sure self.arr is a heap
  23.         return element
  24.    
  25.     def insert(self, element):
  26.         self.arr.append(element)
  27.         # make sure self.arr is a heap
  28.         index_element = len(self.arr) - 1
  29.        
  30.  
  31. #      1
  32. #    3   75
  33. # 20  8
  34.  
  35. # Test case
  36. heap = MinHeap([75,8,3,20,32,1])
  37.  
  38. print(heap.peek())    # => 1
  39. print(heap.remove())  # => 1
  40. print(heap.remove())  # => 3
  41. print(heap.insert(9)) # => nil
  42. print(heap.remove())  # => 8
  43. print(heap.peek())    # => 9
  44.  
  45. '''
  46. [75,8,3,20,32,1]
  47. n = 6
  48. for 3 to 0:
  49.    
  50. '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement