CSc 7003, Programming for Data Science (Summer 2022)
Program 10 - Priority Queue Simple Implementations using sorted and unsorted lists
Array/List Implementation
Complete the following definitions of Sorted and Unsorted list implementations of Priority Queues:
class PQSortedArray:
def __init__(self):
self._data = []
self._size = 0
def __str__(self):
return str(self._data)
def is_empty(self):
return self._size == 0
def insert(self,num):
def delete_min(self):
class PQUnsortedArray:
def __init__(self):
self._data = []
self._size = 0
def __str__(self):
return str(self._data)
def is_empty(self):
return self._size == 0
def insert(self,num):
def delete_min(self):
## The following is the main program to test the above two implementations
import random
def test_PQ(twenty,q):
print("list = ",twenty)
for x in twenty:
q.insert(x)
sorted_twenty = []
while not q.is_empty():
sorted_twenty.append(q.delete_min())
print("sorted list = ",sorted_twenty)
def main():
print("Testing Sorted Array Implementation of Priority Queue")
q1 = PQSortedArray()
twenty = list(range(20))
random.shuffle(twenty)
test_PQ(twenty,q1)
print()
print("Testing Unsorted Array Implementation of Priority Queue")
q2 = PQUnsortedArray()
twenty = list(range(20))
random.shuffle(twenty)
test_PQ(twenty,q2)
main()
A sample run of the main program is given below:
macbook-pro:LL raj$ python3 PQ.py Testing Sorted Array Implementation of Priority Queue list = [1, 3, 15, 7, 14, 4, 5, 19, 8, 13, 11, 6, 0, 16, 2, 10, 18, 9, 17, 12] sorted list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] Testing Unsorted Array Implementation of Priority Queue list = [8, 12, 14, 10, 18, 15, 16, 17, 1, 9, 19, 5, 13, 4, 0, 6, 7, 3, 2, 11] sorted list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]