Using the knowledge in computational language in python it is possible to write a code that Develop a PriorityQueue data structure in a file.
<h3>Writting the code in python:</h3>
<em>import sys</em>
<em>class Node:</em>
<em>def __init__(self,key):</em>
<em>self.left = None</em>
<em>self.right = None</em>
<em>self.val = key</em>
<em>self.parent = None</em>
<em>class MinHeap:</em>
<em>def __init__(self, maxsize):</em>
<em>self.maxsize = maxsize</em>
<em>self.size = 0</em>
<em>self.Heap = Node(-1 * sys.maxsize )</em>
<em>self.FRONT = self.Heap</em>
<em># A utility function to do inorder tree traversal</em>
<em>def isLeaf(self, node):</em>
<em>if node.left == None and node.right == Node:</em>
<em>return True</em>
<em>return False</em>
<em># Function to swap two nodes of the heap</em>
<em>def swap(self, node1, node2):</em>
<em>node1.data, node2.data = node2.data, node1.data</em>
<em># Function to heapify the node at pos</em>
<em>def minHeapify(self, node):</em>
<em># If the node is a non-leaf node and greater</em>
<em># than any of its child</em>
<em>if not self.isLeaf(node):</em>
<em>if (node.data > node.left.data or</em>
<em>node.data > node.right.data):</em>
<em># Swap with the left child and heapify</em>
<em># the left child</em>
<em>if node.left.data < node.right.data:</em>
<em>self.swap(node, node.left)</em>
<em>self.minHeapify(node.left)</em>
<em># Swap with the right child and heapify</em>
<em># the right child</em>
<em>else:</em>
<em>self.swap(node, node.right)</em>
<em>self.minHeapify(node.right)</em>
<em># Function to insert a node into the heap</em>
<em>def insert(self, element):</em>
<em>if self.size >= self.maxsize :</em>
<em>return</em>
<em>self.size+= 1</em>
<em>self.bst_insert(FRONT, element)</em>
<em>current = FRONT</em>
<em>while current.parent != None and current.data < current.parent.data:</em>
<em>self.swap(current, current.parent)</em>
<em>current = current.parent</em>
<em># Function to print the contents of the heap</em>
<em>def Print(self):</em>
<em>self.inorder()</em>
<em># Function to build the min heap using</em>
<em># the minHeapify function</em>
<em>def inorder(self, root):</em>
<em>if root:</em>
<em>inorder(root.left)</em>
<em>print(root.val)</em>
<em>inorder(root.right)</em>
<em>def bst_insert(self, root, node):</em>
<em>if root is None:</em>
<em>root = node</em>
<em>else:</em>
<em>root.next = node</em>
<em>self.FRONT = node</em>
<em># Driver Code</em>
<em>if __name__ == "__main__":</em>
<em>r = Node(50)</em>
<em>bst_insert(r,Node(30))</em>
<em>bst_insert(r,Node(20))</em>
<em>bst_insert(r,Node(40))</em>
<em>bst_insert(r,Node(70))</em>
<em>bst_insert(r,Node(60))</em>
<em>bst_insert(r,Node(80))</em>
<em># Print inoder traversal of the BST</em>
<em>inorder(r)</em>
<em>print('The minHeap is ')</em>
<em>minHeap = MinHeap(15)</em>
<em>minHeap.insert(5)</em>
<em>minHeap.insert(3)</em>
<em>minHeap.insert(17)</em>
<em>minHeap.insert(10)</em>
<em>minHeap.insert(84)</em>
<em>minHeap.insert(19)</em>
<em>minHeap.insert(6)</em>
<em>minHeap.insert(22)</em>
<em>minHeap.insert(9)</em>
<em>minHeap.minHeap()</em>
<em>minHeap.Print()</em>
<em>print("The Min val is " + str(minHeap.remove()))</em>
See more about python at brainly.com/question/13437928
#SPJ1