bsc

Comprehensive codebase and cou...
Log | Files | Refs | Activity | README | LICENSE

root / semester_2 / eduincs / pgrm_027.cpp

pgrm_027.cpp (1974B)


      1 /* Double linked list */
      2 
      3 #include <iostream>
      4 using namespace std;
      5 
      6 struct Node {
      7     int info;
      8     Node *next = nullptr;
      9     Node *prev = nullptr;
     10 };
     11 
     12 class doublelist {
     13 private:
     14     Node *head = nullptr;
     15 
     16 public:
     17     void insertBeg();
     18     void insertEnd();
     19     void display();
     20     ~doublelist();
     21 };
     22 
     23 void doublelist::insertBeg() {
     24     Node *newNode = new Node;
     25     cout << "Enter data: ";
     26     cin >> newNode->info;
     27 
     28     if (head == nullptr) {
     29         head = newNode;
     30     } else {
     31         head->prev = newNode;
     32         newNode->next = head;
     33         head = newNode;
     34     }
     35     cout << "Node added successfully!\n";
     36 }
     37 
     38 void doublelist::insertEnd() {
     39     Node *newNode = new Node;
     40     cout << "Enter data: ";
     41     cin >> newNode->info;
     42 
     43     if (head == nullptr) {
     44         head = newNode;
     45     } else {
     46         Node *tmp = head;
     47         while (tmp->next != nullptr) {
     48             tmp = tmp->next;
     49         }
     50         tmp->next = newNode;
     51         newNode->prev = tmp;
     52     }
     53     cout << "Node added successfully!\n";
     54 }
     55 
     56 void doublelist::display() {
     57     cout << "The list: ";
     58     Node *tmp = head;
     59     while (tmp != nullptr) {
     60         cout << tmp->info << " ";
     61         tmp = tmp->next;
     62     }
     63     cout << "nullptr\n";
     64 }
     65 
     66 doublelist::~doublelist() {
     67     Node *tmp;
     68     while (head != nullptr) {
     69         tmp = head;
     70         head = head->next;
     71         delete tmp;
     72     }
     73     cout << "List deleted\n";
     74 }
     75 
     76 int main() {
     77     doublelist obj;
     78     int ch;
     79 
     80     while (1) {
     81         cout << "\nMenu:\n1. Insert Beg\n2. Insert End\n3. Display\n4. Exit\n";
     82         cout << "Enter choice: ";
     83         cin >> ch;
     84 
     85         switch (ch) {
     86             case 1:
     87                 obj.insertBeg();
     88                 break;
     89             case 2:
     90                 obj.insertEnd();
     91                 break;
     92             case 3:
     93                 obj.display();
     94                 break;
     95             case 4:
     96                 return 0;
     97             default:
     98                 cout << "Wrong choice\n";
     99         }
    100     }
    101 
    102     return 0;
    103 }
© notamitgamer • Site Built: 2026-09-05 01:53:16 UTC • git-mirror commit: c170d72 [view raw info]
Originally created with stagit • modified by notamitgamer
Forked from github.com/notamitgamer/git-mirror