Alle, ILMU Linked List You will be required to implement one of three types of Linked List: . Singly Linked List Doubly linked List Circular Linked List Your Linked List must be comprised of Nodes. A Node may be implemented as either a struct or a class, and must contain only pointers and the user's data. Your Linked List must have a Head pointer, and may need a Tall pointer depending on the type. You may not use any of the containers or algorithms from the STL or Boost libraries in implementing your Linked List or its functionality, Functionality Insert user specified data elements using prepending O The user can input as many positive integers as they wish, until a sentinel value (..-1) is entered O Example: If the user inputs the following integers one by one 6, 5, 4, 3, 2, 10, 1 then the linked list (singly, doubly or circular) will contain the elements 10,2,3,4,5,6 in that order -1 is the sentinel value Search for the first instance of a user specified data element O Example: Assume the linked list (singly, doubly or circular) contains the elements 4,5,5 in that order . If the user specifies S is to be searched for the function should output that the element exist upon finding the first instance of 5 i.e. the one next to the 4) If the user specifies 6 is to be searched for the function should output that the element does not exist Delete the first instance of a user specified data element Example: . Assume the linked list (singly, doubly or circular) contains the elements 4,5,5 in that order If the user specifies 5 is to be deleted, the function should delete the first instance of 5 i.e. the one next to the 4) and output that the element was deleted If the user specifies 6 is to be deleted, the function should output that the element could not be deleted Output all data elements in their current order Example: Assume the linked list (singly, doubly or circular) contains the elements 10, 2, 3, 4, 5, 6 in that order Outputting the elements should result in 10,2 3 4 5