First Lab 1) Look at the linked list based stack class that we developed on in c lass. Use that as a guide to implenting a generic linked list class. You can use the same ListElement class that I wrote in class. The instance variables should be "head", a memory cell pointing to the first (dummy) list element, and "tail", a memory cell pointing to the last element of the list. It should have a single no argument constructor. Method functions should be: void InsertAtHead(T value) T DeleteFromHead() //returns the value from the deleted node. void insertAtTail(T value) boolean isEmpty() 2) Use this linked list class as the basis for a new stack class. (Just instantiate a linked list in the constructor. Then InsertAtHead for pushing and DeleteFromHead for popping. 3) Write a main program that will accept a string of operands (doubles) and operands (+ - / x) on the command line. It should interpret these as reverse Polish (postfix) expression, evaluate the expression, and print the final value. 4) Be sure to deal with invalid input in a nice tidy fashion. As discussed in class, to evaluate a postfix expression, when you see an operand, push it on to a stack. When you see an operator, pop the two top elements from the stack, combine them using the specified operation, and push the result on the stack. When the input stream is exhausted, print the top item on the stack.