Problem
1. Write a function that takes a parse tree for a mathematical expression and calculates the derivative of the expression with respect to some variable.
2. Implement a binary heap as a max heap.
3. Using the BinaryHeap class, implement a new class called PriorityQueue. Your PriorityQueue class should implement the constructor, plus the enqueue and dequeue methods.