1. Modify the ExpressionTree class from the chapter to handle the unary operator - and unary mathematical function n!.
2. Implement the general Priority Queue ADT using the min-heap implemented as an array. Instead of having the number of priority levels as an argument of the constructor, specify the maximum capacity of the queue. In addition, define the isFull() method that returns True when the queue is full and False otherwise.