How do you create a doubly linked list that holds two kinds

How do you create a doubly linked list that holds two kinds of data, one is a int and the other is a double. I am trying to do this in C++ if anyone can help me out Id appeciate it!

Solution

Answer :

Create double linked list :-

#include<iostream>
using namespace std;


struct list {
   struct list *prev;
   int data;
   struct list *next;
} *node = NULL, *first = NULL, *last = NULL, *node1 = NULL, *node2 = NULL;

class linkedlist {
   public:

      
       void insert_beginning() {
           list *addBeg = new list;
           cout << \"Enter value for the node:\" << endl;
           cin >> addBeg->data;
           if(first == NULL) {
               addBeg->prev = NULL;
               addBeg->next = NULL;
               first = addBeg;
               last = addBeg;
               cout << \"Linked list Created!\" << endl;
           }
           else {
               addBeg->prev = NULL;
               first->prev = addBeg;
               addBeg->next = first;
               first = addBeg;
               cout << \"Data Inserted at the beginning of the Linked list!\" << endl;
           }
       }

      
       void insert_end() {
           list *addEnd = new list;
           cout << \"Enter value for the node:\" << endl;
           cin >> addEnd->data;
           if(first == NULL) {
               addEnd->prev = NULL;
               addEnd->next = NULL;
               first = addEnd;
               last = addEnd;
               cout << \"Linked list Created!\" << endl;
           }
           else {
               addEnd->next = NULL;
               last->next = addEnd;
               addEnd->prev = last;
               last = addEnd;
               cout << \"Data Inserted at the end of the Linked list!\" << endl;
           }
       }

      
       void display() {
           node = first;
           cout << \"List of data in Linked list in Ascending order!\" << endl;
           while(node != NULL) {
               cout << node->data << endl;
               node = node->next;
           }
           node = last;
           cout << \"List of data in Linked list in Descending order!\" << endl;
           while(node != NULL) {
               cout << node->data << endl;
               node = node->prev;
           }
       }
  
      
       void del() {
           int count = 0, number, i;
           node = node1 = node2 = first;
           for(node = first; node != NULL; node = node->next)
               cout << \"Enter value for the node:\" << endl;
           count++;
           display();
           cout << count << \" nodes available here!\" << endl;
           cout << \"Enter the node number which you want to delete:\" << endl;
           cin >> number;
           if(number != 1) {
               if(number < count && number > 0) {
                   for(i = 2; i <= number; i++)
                       node = node->next;
                   for(i = 2; i <= number-1; i++)
                       node1 = node1->next;
                   for(i = 2; i <= number+1; i++)
                       node2 = node2->next;
                   node2->prev = node1;
                   node1->next = node2;
                   node->prev = NULL;
                   node->next = NULL;
                   node = NULL;
               }
               else if(number == count) {
                   node = last;
                   last = node->prev;
                   last->next = NULL;
                   node = NULL;
               }
               else
                   cout << \"Invalid node number!\" << endl;
           }
           else {
               node = first;
               first = node->next;
               first->prev = NULL;
               node = NULL;
           }
           cout << \"Node has been deleted successfully!\" << endl;
       }
  
};

int main() {
   int op = 0;
   linkedlist llist = linkedlist();
   while(op != 4) {
       cout << \"1. Insert at the beginning\ 2. Insert at the end\ 3. Delete\ 4. Display\ 5. Exit\" << endl;
       cout << \"Enter your choice:\" << endl;
       cin >> op;
       switch(op) {
           case 1:
               llist.insert_beginning();
               break;
           case 2:
               llist.insert_end();
               break;
           case 3:
               llist.del();
               break;
           case 4:
               llist.display();
               break;
           case 5:
               cout << \"Bye Bye!\" << endl;
               return 0;
               break;
           default:
               cout << \"Invalid choice!\" << endl;
       }
   }
   return 0;
}

How do you create a doubly linked list that holds two kinds of data, one is a int and the other is a double. I am trying to do this in C++ if anyone can help me
How do you create a doubly linked list that holds two kinds of data, one is a int and the other is a double. I am trying to do this in C++ if anyone can help me
How do you create a doubly linked list that holds two kinds of data, one is a int and the other is a double. I am trying to do this in C++ if anyone can help me

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site