Data Structure
Data Structure
Circular Linked List is a variation of Linked list in which the first element
points to the last element and the last element points to the first element.
Both Singly Linked List and Doubly Linked List can be made into a circular
linked list.
The last link's next points to the first link of the list in both cases of singly as
well as doubly linked list.
The first link's previous points to the last of the list in case of doubly linked list.
Basic Operations
Following are the important operations supported by a circular list.
Insertion Operation
Following code demonstrates the insertion operation in a circular linked list
based on single linked list.
Example
//insert link at the first location
void insertFirst(int key, int data) {
//create a link
link->key = key;
link->data= data;
if (isEmpty()) {
head = link;
head->next = head;
} else {
link->next = head;
head = link;
Deletion Operation
Following code demonstrates the deletion operation in a circular linked list
based on single linked list.
if(head->next == head) {
head = NULL;
return tempLink;
head = head->next;
return tempLink;
}
Display List Operation
Following code demonstrates the display list operation in a circular linked list.
void printList() {
printf("\n[ ");
if(head != NULL) {
while(ptr->next != ptr) {
printf("(%d,%d) ",ptr->key,ptr->data);
ptr = ptr->next;
printf(" ]");