Untitled
unknown
plain_text
2 years ago
2.7 kB
5
Indexable
#include <stdio.h> #include <stdlib.h> // Define the singly linked list node structure struct Node { int data; struct Node* next; }; // Function to create a new node struct Node* createNode(int data) { struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->data = data; newNode->next = NULL; return newNode; } // Function to insert a new node at the beginning of the linked list void insertAtBeginning(struct Node** head, int data) { struct Node* newNode = createNode(data); newNode->next = *head; *head = newNode; } // Function to insert a new node at the end of the linked list void insertAtEnd(struct Node** head, int data) { struct Node* newNode = createNode(data); if (*head == NULL) { *head = newNode; } else { struct Node* current = *head; while (current->next != NULL) { current = current->next; } current->next = newNode; } } // Function to display the linked list void displayLinkedList(struct Node* head) { struct Node* current = head; while (current != NULL) { printf("%d -> ", current->data); current = current->next; } printf("NULL\n"); } // Function to free the memory allocated for the linked list void freeLinkedList(struct Node** head) { struct Node* current = *head; while (current != NULL) { struct Node* temp = current; current = current->next; free(temp); } *head = NULL; } int main() { struct Node* head = NULL; int choice, data; while (1) { printf("\nMenu:\n"); printf("1. Insert a node at the beginning\n"); printf("2. Insert a node at the end\n"); printf("3. Display the linked list\n"); printf("4. Exit\n"); printf("Enter your choice: "); scanf("%d", &choice); switch (choice) { case 1: printf("Enter the data to insert: "); scanf("%d", &data); insertAtBeginning(&head, data); break; case 2: printf("Enter the data to insert: "); scanf("%d", &data); insertAtEnd(&head, data); break; case 3: printf("Linked List: "); displayLinkedList(head); break; case 4: // Free the memory used by the linked list freeLinkedList(&head); printf("Exiting the program.\n"); return 0; default: printf("Invalid choice. Please try again.\n"); } } return 0; }
Editor is loading...