0% found this document useful (0 votes)
36 views

Menu Driven

The document defines functions for creating, inserting, deleting, searching, and displaying nodes in a linked list data structure. It includes functions to create a new node, insert a node at the beginning of the list, delete a node with given data, search for a node with given data, and display all elements in the list. These functions are used in a menu-driven program that allows the user to perform linked list operations and exit.

Uploaded by

devavrata niraj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views

Menu Driven

The document defines functions for creating, inserting, deleting, searching, and displaying nodes in a linked list data structure. It includes functions to create a new node, insert a node at the beginning of the list, delete a node with given data, search for a node with given data, and display all elements in the list. These functions are used in a menu-driven program that allows the user to perform linked list operations and exit.

Uploaded by

devavrata niraj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

#include <iostream>

using namespace std;

// Define a structure for a node in the linked list


struct Node {
int data;
Node* next;
};

// Function to create a new node


Node* createNode(int data) {
Node* newNode = new Node;
newNode->data = data;
newNode->next = nullptr;
return newNode;
}

// Function to insert a node at the beginning of the linked list


Node* insertNode(Node* head, int data) {
Node* newNode = createNode(data);
newNode->next = head;
return newNode;
}

// Function to delete a node with given data from the linked list
Node* deleteNode(Node* head, int data) {
Node* prev = nullptr;
Node* curr = head;

// If head node holds the data to be deleted


if (curr != nullptr && curr->data == data) {
head = curr->next;
delete curr;
return head;
}

// Find the node to be deleted


while (curr != nullptr && curr->data != data) {
prev = curr;
curr = curr->next;
}
// If the data was not found in the list
if (curr == nullptr) {
cout << "Element not found in the list." << endl;
return head;
}

// Unlink the node from the linked list


prev->next = curr->next;
delete curr;
return head;
}

// Function to search for a node with given data


bool searchNode(Node* head, int data) {
Node* temp = head;
while (temp != nullptr) {
if (temp->data == data)
return true;
temp = temp->next;
}
return false;
}

// Function to display all elements in the linked list


void displayList(Node* head) {
Node* temp = head;
while (temp != nullptr) {
cout << temp->data << " ";
temp = temp->next;
}
cout << endl;
}

int main() {
Node* head = nullptr;
int choice, data;

do {
cout << "1. Insert Element" << endl;
cout << "2. Delete Element" << endl;
cout << "3. Search Element" << endl;
cout << "4. Display List" << endl;
cout << "5. Exit" << endl;
cout << "Enter your choice: ";
cin >> choice;

switch (choice) {
case 1:
cout << "Enter element to insert: ";
cin >> data;
head = insertNode(head, data);
break;
case 2:
cout << "Enter element to delete: ";
cin >> data;
head = deleteNode(head, data);
break;
case 3:
cout << "Enter element to search: ";
cin >> data;
if (searchNode(head, data))
cout << "Element found in the list." << endl;
else
cout << "Element not found in the list." << endl;
break;
case 4:
cout << "List elements: ";
displayList(head);
break;
case 5:
cout << "Exiting program..." << endl;
break;
default:
cout << "Invalid choice. Please enter a valid option." << endl;
}
} while (choice != 5);

return 0;
}

You might also like