binary trees programming projects implement the function treesize(root)which computes the number of nodes in binary tree implement the function treeheight(root)which computes the height of binary tree implement the computeop(lvalueoperatorrvaluehelper method used to compute the value of binary operator when evaluating an expression tree assume all operands in the expression tree are single digits modify the expressiontree class from the to handle the unary operator and unary mathematical function 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 constructorspecify the maximum capacity of the queue in additiondefine the isfull(method that returns true when the queue is full and false otherwise implement the general priority queue adt using the min-heap implemented as vector instead of having the number of priority levels as an argument of the constructorspecify the maximum capacity of the queue complete the implementation of the morse code tree adt add the operation getcodeseq(symbolto the morse code tree adtwhich accepts single-character symbol and returns the corresponding morse code sequence for that symbol none should be returned if the supplied symbol is invalid design and implement program that uses the morse code tree adt to decode morse code sequences extracted from standard input your program should detect and report any invalid code sequences