ADTs 1. Queue -FIFO We can implement in this way: template<typename T> class Queue { public: void enqueue(const T & item); T dequeue(); T & peek() const T & peek() const; int numbebrOfItem() const; }; - In the actual C++ STL library, it has the following functions: push() pop() peek() 2. Stack - LIFO We can implement in this way: template<typename T> class Stack { public: void push(const T & item); T pop(); T & peek(); const T & peek() const; int numberOfItem() const; }; In the C++ STL library, it has similar functions as queue. 3. Sets - Add - Test if an item is in the set - Check if the set is empty - Take the union of two set - intersect two sets A variant of this ADT is a multiset. (Also called a bag) It allows the same element to appear multiple times, whereas a true set either has an object or n...