diff --git a/data_structure/Linked List.cpp b/data_structure/Linked List.cpp index 49e739a3c..d7177805f 100644 --- a/data_structure/Linked List.cpp +++ b/data_structure/Linked List.cpp @@ -1,106 +1,104 @@ #include using namespace std; - struct node { - int val; - node *next; + int val; + node *next; }; node *start; void insert(int x) { - node *t = start; - if (start != NULL) - { - while (t->next != NULL) - { - t = t->next; - } - node *n = new node; - t->next = n; - n->val = x; - n->next = NULL; - } - else - { - node *n = new node; - n->val = x; - n->next = NULL; - start = n; - } + node *t = start; + if (start != NULL) + { + while (t->next != NULL) + { + t = t->next; + } + node *n = new node; + t->next = n; + n->val = x; + n->next = NULL; + } + else + { + node *n = new node; + n->val = x; + n->next = NULL; + start = n; + } } void remove(int x) { + if (start == NULL) + { + cout << "\nLinked List is empty\n"; + return; + } + else if (start->val == x) + { + node *temp = start; + start = start->next; + delete temp; + return; + } + + node *temp = start, *parent = start; - if (start == NULL) - { - cout << "\nLinked List is empty\n"; - return; - } - else if (start->val == x) - { - node *temp = start; - start = start->next; - delete temp; - return; - } - - node *temp = start, *parent = start; - - while (temp != NULL && temp->val != x) - { - parent = temp; - temp = temp->next; - } - - if (temp == NULL) - { - cout << endl - << x << " not found in list\n"; - return; - } + while (temp != NULL && temp->val != x) + { + parent = temp; + temp = temp->next; + } + if (temp == NULL) + { + cout << endl << x << " not found in list\n"; + return; + } + parent->next = temp->next; - delete temp; + delete temp; } void search(int x) { - node *t = start; - int found = 0; - while (t != NULL) - { - if (t->val == x) - { - cout << "\nFound"; - found = 1; - break; - } - t = t->next; - } - if (found == 0) - { - cout << "\nNot Found"; - } + node *t = start; + int found = 0; + while (t != NULL) + { + if (t->val == x) + { + cout << "\nFound"; + found = 1; + break; + } + t = t->next; + } + if (found == 0) + { + cout << "\nNot Found"; + } } void show() { - node *t = start; - while (t != NULL) - { - cout << t->val << "\t"; - t = t->next; - } + node *t = start; + while (t != NULL) + { + cout << t->val << "\t"; + t = t->next; + } } void reverse() { - node *first = start; - if (first != NULL){ + node *first = start; + if (first != NULL) + { node *second = first->next; while (second != NULL) { @@ -109,53 +107,58 @@ void reverse() first = second; second = tem; } - start->next = NULL; - start = first; + start->next = NULL; + start = first; + } + else + { + cout<<"\nEmpty list"; + } } int main() { - int choice, x; - do - { - cout << "\n1. Insert"; - cout << "\n2. Delete"; - cout << "\n3. Search"; - cout << "\n4. Print"; - cout << "\n5. Reverse"; - cout << "\n0. Exit"; - cout << "\n\nEnter you choice : "; - cin >> choice; - switch (choice) - { - case 1: - cout << "\nEnter the element to be inserted : "; - cin >> x; - insert(x); - break; - case 2: - cout << "\nEnter the element to be removed : "; - cin >> x; - remove(x); - break; - case 3: - cout << "\nEnter the element to be searched : "; - cin >> x; - search(x); - break; - case 4: - show(); - cout << "\n"; - break; - case 5: - cout << "The reversed list: \n"; - reverse(); - show(); - cout << "\n"; - break; - } - } while (choice != 0); + int choice, x; + do + { + cout << "\n1. Insert"; + cout << "\n2. Delete"; + cout << "\n3. Search"; + cout << "\n4. Print"; + cout << "\n5. Reverse"; + cout << "\n0. Exit"; + cout << "\n\nEnter you choice : "; + cin >> choice; + switch (choice) + { + case 1: + cout << "\nEnter the element to be inserted : "; + cin >> x; + insert(x); + break; + case 2: + cout << "\nEnter the element to be removed : "; + cin >> x; + remove(x); + break; + case 3: + cout << "\nEnter the element to be searched : "; + cin >> x; + search(x); + break; + case 4: + show(); + cout << "\n"; + break; + case 5: + cout << "The reversed list: \n"; + reverse(); + show(); + cout << "\n"; + break; + } + } while (choice != 0); - return 0; + return 0; }