Professional Documents
Culture Documents
10 20 40 55 70
Rear
Circular Linked List Operations
insertNode
//add new node to ordered circular linked list
deleteNode
//remove a node from circular linked list
print
//print the Circular Linked List once
Traverse the list
void print(NodePtr Rear){
NodePtr Cur;
if(Rear != NULL){
Cur = Rear->next;
do{
cout << Cur->data << " ";
Cur = Cur->next;
}while(Cur != Rear->next);
cout << endl;
}
}
10 20 40 55 70
Rear
Insert Node
• Insert into an empty list
Rear = New;
Rear->next = Rear;
10
New Rear
• Insert to head of a Circular Linked List
New->next = Cur; // same as: New->next = Rear->next;
Prev->next = New; // same as: Rear->next = New;
10 20 40 55 70
10 20 55 70
40
Prev Cur Rear
New
• Insert to end of a Circular Linked List
New->next = Cur; // same as: New->next = Rear->next;
Prev->next = New; // same as: Rear->next = New;
Rear = New;
10 20 40 55 70
10
10 20 40 55 70
Rear Prev
Cur
• Delete a middle node Cur from a Circular
Linked List
Prev->next = Cur->next;
delete Cur;
10 20 40 55 70
10 20 40 55 70
Prev Cur
Rear
CIRCULAR DOUBLY LINKED LIST
THANK YOU!!!