Exemplo n.º 1
0
def test_min_heap():
    heap = MinHeap()
    heap.add(1)
    heap.add(2)

    value = heap.retrieve_min()
    assert value == 1
Exemplo n.º 2
0
def test_retrieve_min(capsys):
    heap = MinHeap()
    heap.heap_list = [None, 1, 2, 4, 3]
    heap.size = 4

    minimum = heap.retrieve_min()
    assert heap.size == 3
    assert minimum == 1
    assert heap.heap_list == [None, 2, 3, 4]

    heap.retrieve_min()
    heap.retrieve_min()
    heap.retrieve_min()
    assert heap.retrieve_min() is None
    captured = capsys.readouterr()
    assert captured.out == "Error, heap is empty!\n"
Exemplo n.º 3
0
# import heap class
from min_heap import MinHeap

# make an instance of MinHeap
min_heap = MinHeap()

# set internal list for testing purposes...
min_heap.heap_list = [None, 10, 13, 21, 61, 22, 23, 99]
min_heap.count = 7

while len(min_heap.heap_list) != 1:
    print(min_heap.heap_list)
    min_heap.retrieve_min()
from random import randrange
# import heap class
from min_heap import MinHeap 

# make an instance of MinHeap
min_heap = MinHeap()

# populate min_heap with descending numbers
descending_nums = [n for n in range(10001, 1, -1)]
print("ADDING!")
for el in descending_nums:
  min_heap.add(el)

print("REMOVING!")
# remove minimum until min_heap is empty
min_heap.retrieve_min()

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

# min_heap.py

class MinHeap:
  def __init__(self):
    self.heap_list = [None]
    self.count = 0

  def parent_idx(self, idx):
    return idx // 2

  def left_child_idx(self, idx):
    return idx * 2