CMPS 223 Data Structures and Algorithms Assignment 2: List Implementation based on Link Structure I. Purposes: How to use linked structures to implement a list. II. What you are going to do: 1. Define a Singly Linked List structures with the following two template classes: template class Node { public: T data; Node *next; Node( const T & ); ~Node(); }; template class LList { protected: int count; Node head; public: LList( ); ~LList(); LList( const LList& ); bool empty() const; // Return this for cascade calls. (obj, pos) LList& insert( const T & , int ); T erase( int ); void display() const; template friend ostream& operator<<( ostream&, const DTList& ); }; III. Use and make a few changes to your main program and menu for assignment one to test the singly linked list implementation. Menu for assigment 2 should be like the following: +=========================================+ | HW2 : Linked List Implemenatation | +=========================================+ | F: Create one integer and one character | | list, and insert 10 random values in | | each list. The value ranges of lists | | 0 ... 99 and 'A' .. 'Z'. | +-----------------------------------------+ | S: Show two lists. | +-----------------------------------------+ | A: Ask for a int and a char value, | | insert the values at random poistions| | of the lists. | +-----------------------------------------+ | D: Generate a random position, and | | remove values at the positions of the| | int and char lists. | +-----------------------------------------+ | H: Show this menu. | +-----------------------------------------+ | Q: Exit program. | +-----------------------------------------+