Requirements: Design a circular double linked list, for which the following operations should be implemented:
- Search for a given element in the structure
- Insert an element after some element, specified as argument
- Delete an element specified as argument
- List all the elements present in the double linked list.
Approach: You should show the functionality by repeatedly inserting a few (at least 5) elements, followed by at least one search and one delete operation. After each operation performed, display the elements in the list.