Advertisement
SabirSazzad

Link list Queue Implement

Feb 26th, 2017
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.32 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int Front,Rear,DataLimit=0;
  5. struct Node
  6. {
  7.    int data;
  8.    Node *point;
  9. };
  10.  
  11. Node *head;
  12. Node* getnewnode(int value)
  13. {
  14.     Node *newnode = new Node();
  15.     newnode -> data = value;
  16.     newnode -> point = NULL;
  17.     return newnode;
  18. }
  19. void EnQueue(int value, int limit)
  20. {
  21.     int Count = 1;
  22.     Node *temp = head;
  23.     while(temp != NULL)
  24.     {
  25.         Count++;
  26.         temp = temp->point;
  27.     }
  28.     if(Count <= limit)
  29.     {
  30.         Node *newnode = getnewnode(value);
  31.         newnode -> point = head;
  32.         head = newnode;
  33.         DataLimit++;
  34.     }
  35.     else
  36.     {
  37.         cout << "\nQueue Over Flow\n" <<endl;
  38.         return;
  39.     }
  40. }
  41. int DeQueue()
  42. {
  43.     int data,data2;
  44.     if(DataLimit==0)
  45.     {
  46.         cout << "\nQueue Under Flow\n" <<endl;
  47.         return NULL;
  48.     }
  49.     if(DataLimit==1)
  50.     {
  51.         Node *temp3 = head;
  52.         data2 = temp3->data;
  53.         DataLimit--;
  54.         head = NULL;
  55.         return data2;
  56.     }
  57.     Node *temp = head;
  58.     int i;
  59.     for(i=1; i<DataLimit-1; i++)
  60.     {
  61.         temp = temp->point;
  62.     }
  63.     Node *temp2 = temp->point;
  64.     temp->point = temp2->point;
  65.     data = temp2->data;
  66.     DataLimit--;
  67.     delete temp2;
  68.     return data;
  69. }
  70. void print()
  71. {
  72.     Node *temp = head;
  73.     cout << "Current Link List data...." <<endl;
  74.     while(temp != NULL)
  75.     {
  76.         cout << temp->data << " ";
  77.         temp = temp->point;
  78.     }
  79.     cout <<endl;
  80. }
  81. int main()
  82. {
  83.     int limit,dequeue_data;
  84.     limit = 4;
  85.     cout << "Queue limit 4\n" <<endl;
  86.     EnQueue(10,limit);
  87.     print();
  88.     EnQueue(20,limit);
  89.     print();
  90.     EnQueue(30,limit);
  91.     print();
  92.     EnQueue(40,limit);
  93.     print();
  94.     EnQueue(50,limit);// Queue will over flow
  95.     dequeue_data= DeQueue();
  96.     cout << "DeQueue Data: " << dequeue_data <<endl;
  97.     print();
  98.     dequeue_data= DeQueue();
  99.     cout << "DeQueue Data: " << dequeue_data <<endl;
  100.     print();
  101.     dequeue_data= DeQueue();
  102.     cout << "DeQueue Data: " << dequeue_data <<endl;
  103.     print();
  104.     dequeue_data= DeQueue();
  105.     cout << "DeQueue Data: " << dequeue_data <<endl;
  106.     print();
  107.     dequeue_data= DeQueue();
  108.     cout << "DeQueue Data: " << dequeue_data <<endl; // Queue Empty Nothing to pop
  109.     cout << "Data Limit : " <<DataLimit <<endl;
  110.  
  111.     return 0;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement