Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<conio.h>
- using namespace std;
- struct NODE {
- int data;
- NODE *next;
- };
- NODE *head = NULL;
- int run();
- void insBeg();
- void insMid();
- void insEnd();
- void delBeg();
- void delMid();
- void delEnd();
- void dispList();
- int main() {
- while (run());
- return 0;
- }
- int run() {
- char ch;
- system("cls");
- dispList();
- cout << "\n\nEnter choice\n1) insert beg\n2) insert after\n3) insert end\n"
- <<"4) delete beg\n5) delete after\n6) delete end\n"
- <<"7) exit\n";
- ch = _getch();
- switch (ch) {
- case '1':insBeg(); break;
- case '2':insMid(); break;
- case '3':insEnd(); break;
- case '4':delBeg(); break;
- case '5':delMid(); break;
- case '6':delEnd(); break;
- case '7':return false;
- }
- //_getch();
- return true;
- }
- void insBeg() {
- NODE *node = new NODE, *tmp;
- cout << "Enter new element : "; cin >> node->data;
- tmp = head;
- head = node;
- node->next = tmp;
- }
- void insMid() {
- NODE *node = new NODE, *tmp, *cur = head;
- int num;
- cout << "Enter new element : "; cin >> node->data;
- cout << "Enter num : "; cin >> num;
- while ((cur) && (cur = cur->next))
- if (cur->data == num)break;
- if (cur == NULL)
- cout << "Element not found";
- else {
- tmp = cur->next;
- cur->next = node;
- node->next = tmp;
- }
- }
- void insEnd() {
- NODE *node = new NODE, *cur = head;
- node->next = NULL;
- cout << "Enter new value : "; cin >> node->data;
- while ((cur) && (cur->next != NULL))
- cur = cur->next;
- if (cur)
- cur->next = node;
- else
- head = node;
- }
- void delBeg() {
- if (head) {
- NODE *tmp = head;
- head = head->next;
- delete tmp;
- }
- }
- void delMid() {
- NODE *cur = head, *tmp;
- int data;
- cout << "Enter element to delete : "; cin >> data;
- while ((cur->next) && ((cur->next)->data != data))
- cur = cur->next;
- if (cur) {
- tmp = cur->next;
- cur->next = cur->next->next;
- delete tmp;
- }
- }
- void delEnd() {
- NODE *cur = head, *tmp;
- while ((cur->next) && ((cur->next)->next != NULL))
- cur = cur->next;
- if (cur) {
- tmp = cur->next;
- cur->next = NULL;
- delete tmp;
- }
- }
- void dispList() {
- NODE *cur = head;
- cout << "Linked List : ";
- if (!cur)cout << "EMPTY!";
- while (cur) {
- cout << cur->data << " -> ";
- cur = cur->next;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement