Linkedlist
Linkedlist
REG NO - 23MCA1025
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
if (position <= 0) {
struct Node* newNode = createNode(data);
newNode->next = *head;
*head = newNode;
return;
}
if (position <= 0) {
struct Node* temp = *head;
*head = (*head)->next;
free(temp);
return;
}
int main() {
struct Node* head = NULL;
int choice;
while (1) {
printf("1. Insert at beginning\n");
printf("2. Insert at end\n");
printf("3. Insert at middle\n");
printf("4. Delete from beginning\n");
printf("5. Delete from end\n");
printf("6. Delete from middle\n");
printf("7. Reverse linked list\n");
printf("8. Print linked list\n");
printf("9. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
if (choice == 1) {
insertAtBeginning(&head);
} else if (choice == 2) {
insertAtEnd(&head);
} else if (choice == 3) {
insertAtMiddle(&head);
} else if (choice == 4) {
deleteFromBeginning(&head);
} else if (choice == 5) {
deleteFromEnd(&head);
} else if (choice == 6) {
deleteFromMiddle(&head);
} else if (choice == 7) {
reverseLinkedList(&head);
printf("Linked list reversed\n");
} else if (choice == 8) {
printf("Linked list: ");
printLinkedList(head);
} else if (choice == 9) {
exit(0);
} else {
printf("Invalid choice\n");
}
}
return 0;
}