Question: You have been provided a Python file, heap.py , which constructs a min - heap structure with a list. Using that code as a guide:

You have been provided a Python file, heap.py, which constructs a min-heap structure with a list. Using that code as a guide:
Develop a LinkedHeap data structure in a file named LinkedHeap with the extension appropriate to your chosen langauge using a linked tree structure
(Nodes and Pointers).
If using Python, you MUST use and not alter the BinaryNode provided in the lab.
If using another language, you MUST recode an equivalent BinaryNode object.
Regardless of language, the key is that the publicly visible interface is the same and that you must make it so that the element of the
node is immutable, meaning that moving an element in the heap MUST be done by moving the entire node and changing all pointers.
The heap must support the following interface:
insert(key, value)
This method/subroutine inserts the (key, value) pair into the appropriate postion within the min heap.
delete()
This method/subroutine deletes and returns a (key, value) pair with the minimum key value within the heap.
peek()
This method/subroutine returns a (key, value) pair with the minimum key value within the heap without altering the contents of the heap.
You may add any additional private helper methods that you see fit.
All operations most abide by the rules that govern a heap (see lecture slides for reference).
Once you have your heap structure created, next you must use it as a backing structure to a priority queue.
Develop a PriorityQueue data structure in a file named PriorityQueue that is backed by a linked heap.
Implement the normal methods that accompany a priority queue structure:
add(key, value)
This method/subroutine adds the (key, value) pair into the appropriate postion within the min heap.
remove()
This method/subroutine removes and returns a (key, value) pair with the minimum key value within the heap.
min()
This method/subroutine returns a (key, value) pair with the minimum key within the heap but leaves the heap unaltered.
is_empty()
This method/subroutine returns True (or the langauge-specific equivalent) if the heap contains no key/value pairs, False (or the langauge-
specific equivalent) otherwise.
len(pq)(or the langauge-specific equivalent)
This method/subroutine/function call returns the number of (key, value) pairs stored in the heap using the methodology appropriate to
the language in which this structure is implemented.
Perform the following operations to showcase your working priority queue:
Enqueue the following items: 11,7,8,6,5,9,4
Dequeue 3 items by priority, they should be 4,5, & 6.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!