Head = Null (head being our only pointer)
assign first node to head
and travel to the last using doing next=current--> next and insert there. (we can easily insert this way)
if we want to delete, we can make temp=head and and head=head-> next, this will give pop..
the above code performs the same function that we need to do for a simple queue using link list, because the purpose of circular queue is for space utilization, and here we are doing the same, but the main thing is that the circular queue's typical data structure can never be maintained without a circular link list. So see that whatever implementations are there be it using single link list or doubly link list, to preserve that same data structure a circular link list is must.. even the links that u have provided doesn't even consider singly link list.
But the fact is that same purpose of circular queue can be satisfied by the naive approach of a singly link list.