1. Implement the Stack ADT as described in Section 11.1 in (a) C; (b) Ada; (c) ML.
2. A double-ended queue, or deque, is a data type that combines the actions of a stack and a queue. Write an algebraic specification for a deque abstract data type assuming the following operations: create, empty, front, rear, addfront, addrear, deletefront, and deleterear.