Heaps and prority queus In python

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

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

Develop a heap data structure using a linked structure (Nodes and Pointers)

The heap must support add and remove from the heap

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.

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

Develop a priority queue data structure that is backed by a heap (linked structure NOT A LIST)

Implement the normal methods that accompany a priority queue structure

Enqueue, dequeue, and peek by priority not position

Also length and whether or not the structure is empty (is_empty)

Perform the following operations to showcase your working structure

Enqueue the following items: 4, 7, 5, 11, 8, 6, 9

Dequeue 3 items by priority, they should be 4, 5, & 6.

related heap.py file code is below

class Heap:

    def __init__(self):

        self.heap = [0]

        self.size = 0

    def float(self, k):

        while k // 2 > 0:

            if self.heap[k] < self.heap[k//2]:

                self.heap[k], self.heap[k//2] = self.heap[k//2], self.heap[k]

            k //= 2

    def insert(self, item):

        self.heap.append(item)

        self.size += 1

        self.float(self.size)

    def sink(self, k):

        while k * 2 <= self.size:

            mc = self.minchild(k)

            if self.heap[k] > self.heap[mc]:

                self.heap[k], self.heap[mc] = self.heap[mc], self.heap[k]

            k = mc

    def minchild(self, k):

        if k * 2 + 1 > self.size:

            return k * 2

        elif self.heap[k*2] < self.heap[k*2+1]:

            return k * 2

        else:

            return k * 2 + 1

    def pop(self):

        item = self.heap[1]

        self.heap[1] = self.heap[self.size]

        self.size -= 1

        self.heap.pop()

        self.sink(1)

        return item

h = Heap()

for i in (4, 8, 7, 2, 9, 10, 5, 1, 3, 6):

    h.insert(i)

print(h.heap)

for i in range(10):

    n = h.pop()

    print(n)

    print(h.heap)

Calculate your order
Pages (275 words)
Standard price: $0.00
Client Reviews
4.9
Sitejabber
4.6
Trustpilot
4.8
Our Guarantees
100% Confidentiality
Information about customers is confidential and never disclosed to third parties.
Original Writing
We complete all papers from scratch. You can get a plagiarism report.
Timely Delivery
No missed deadlines – 97% of assignments are completed in time.
Money Back
If you're confident that a writer didn't follow your order details, ask for a refund.

Calculate the price of your order

You will get a personal manager and a discount.
We'll send you the first draft for approval by at
Total price:
$0.00
Power up Your Academic Success with the
Team of Professionals. We’ve Got Your Back.
Power up Your Study Success with Experts We’ve Got Your Back.

Order your essay today and save 30% with the discount code ESSAYHELP