Circularlinkedlist
Circularlinkedlist
h>
#include <stdlib.h>
// Node structure
struct Node {
int data;
};
newNode->data = data;
newNode->next = NULL;
return newNode;
if (*head == NULL) {
*head = newNode;
newNode->next = *head;
else {
temp = temp->next;
temp->next = newNode;
newNode->next = *head;
*head = newNode;
if (*head == NULL) {
*head = newNode;
newNode->next = *head;
else {
temp = temp->next;
temp->next = newNode;
newNode->next = *head;
*head = newNode;
newNode->next = *head;
else if (position == 0) {
insertAtBeginning(head, data);
else {
int i = 0;
temp = temp->next;
i++;
newNode->next = temp->next;
temp->next = newNode;
if (*head == NULL) {
return;
*head = NULL;
else {
temp = temp->next;
temp->next = (*head)->next;
*head = (*head)->next;
free(toDelete);
if (*head == NULL) {
return;
free(*head);
*head = NULL;
else {
secondLast = secondLast->next;
}
secondLast->next = *head;
free(last);
if (*head == NULL) {
return;
else if (position == 0) {
deleteFromBeginning(head);
else {
int i = 0;
temp = temp->next;
i++;
temp->next = temp->next->next;
free(toDelete);
}
// Function to traverse and print the circular linked list
if (head == NULL) {
return;
do {
temp = temp->next;
printf("HEAD\n");
if (head == NULL) {
return 0;
do {
if (temp->data == key) {
temp = temp->next;
}
// Driver program
int main()
// Insertion
insertAtEnd(&head, 10);
insertAtEnd(&head, 20);
insertAtBeginning(&head, 5);
// Traversal
traverse(head);
// Deletion
deleteFromEnd(&head);
deleteAtPosition(&head, 1);
traverse(head);
// Searching
if (search(head, key)) {
key);
}
else {
printf(
key);
return 0;