Problem Statement:
Develop the code for "circular singly linked list" that can perform following operations:
1. Return a pointer to node given the index position of node in list, NULL if node doesn't exist
2. Calculate the size of the list
3. Insert a node given
a. the pointer of node preceding its desired position in list
b. the value to be inserted
4. Remove the node given its index position in list
5. Remove all nodes of the list
Guidelines:
- Please follow OOP based design approach
- You are required to use pointer based approach.
- Use the logical structure of circular singly linked list .
- Use 'ListNode' template class for a node i.e create a separate header for this i.e class ListNode{...etc
- Pointer based data structure handling