1. Implement the stack ADT in a fully generic manner (through the use of templates) by means of a singly linked list. (Give your implementation "from scratch," without the use of any classes from the Standard Template Library or data structures presented earlier in this book.)
2. Implement the queue ADT with a singly linked list.
3. Implement the deque ADT with an array used in a circular fashion.