The way people drive in south Louisiana, it ain't DOGS that are the most dangerous weapons. BUT, we digress.
A true circularly linked list simply starts with a formal LISTHEAD - a list item that is a place-holder - that points to itself in both directions. In programs that use this, there is also an external pointer that points to the listhead item. Often the listhead contains a special mark that says "I'm a listhead" so that when you step through the list, you know what you have come full circle. With that circular structure, it becomes a "full random insertion and removal" queue since you can insert or remove non-listhead items anywhere in the queue by threading through until you find the place you want it to go, even the "first" or "last" element.
To convert a circular DEQ from of a non-circular DEQ, create a listhead entry and insert it at both ends. Then remember when traversing the queue that traversal is infinite if you don't honor the listhead's "I'm a listhead" marker. This is one reason why folks often DON'T use circular queues.