C++ Program to Implement Queue using Linked List














































C++ Program to Implement Queue using Linked List



Introduction:
A queue is an abstract data structure that contains a collection of elements. Queue implements the FIFO mechanism i.e the element that is inserted first is also deleted first. In other words, the least recently added element is removed first in a queue.
Program:
#include <iostream>
using namespace std;
struct node {
   int data;
   struct node *next;
};
struct node* front = NULL;
struct node* rear = NULL;
struct node* temp;
void Insert() {
   int val;
   cout<<"Insert the element in queue : "<<endl;
   cin>>val;
   if (rear == NULL) {
      rear = (struct node *)malloc(sizeof(struct node));
      rear->next = NULL;
      rear->data = val;
      front = rear;
   } else {
      temp=(struct node *)malloc(sizeof(struct node));
      rear->next = temp;
      temp->data = val;
      temp->next = NULL;
      rear = temp;
   }
}
void Delete() {
   temp = front;
   if (front == NULL) {
      cout<<"Underflow"<<endl;
      return;
   }
   else
   if (temp->next != NULL) {
      temp = temp->next;
      cout<<"Element deleted from queue is : "<<front->data<<endl;
      free(front);
      front = temp;
   } else {
      cout<<"Element deleted from queue is : "<<front->data<<endl;
      free(front);
      front = NULL;
      rear = NULL;
   }
}
void Display() {
   temp = front;
   if ((front == NULL) && (rear == NULL)) {
      cout<<"Queue is empty"<<endl;
      return;
   }
   cout<<"Queue elements are: ";
   while (temp != NULL) {
      cout<<temp->data<<" ";
      temp = temp->next;
   }
   cout<<endl;
}
int main() {
   int ch;
   cout<<"1) Insert element to queue"<<endl;
   cout<<"2) Delete element from queue"<<endl;
   cout<<"3) Display all the elements of queue"<<endl;
   cout<<"4) Exit"<<endl;
   do {
      cout<<"Enter your choice : "<<endl;
      cin>>ch;
      switch (ch) {
         case 1: Insert();
         break;
         case 2: Delete();
         break;
         case 3: Display();
         break;
         case 4: cout<<"Exit"<<endl;
         break;
         default: cout<<"Invalid choice"<<endl;
      }
   } while(ch!=4);
   return 0;
}
Output:
Enter your choice : 1
Insert the element in queue : 4
Enter your choice : 1
Insert the element in queue : 3
Enter your choice : 1
Insert the element in queue : 5
Enter your choice : 2
Element deleted from queue is : 4
Enter your choice : 3
Queue elements are : 3 5
Enter your choice : 7
Invalid choice
Enter your choice : 4
Exit







More Articles of Shaik Aftab Ahmed:

Name Views Likes
C++ Program to Find the Frequency of Odd & Even Numbers in the given Matrix 299 1
C++ program to Sort a Linked List Using Merge Sort 278 1
C++ Program to Implement a Linked List representation of a Binary tree 266 1
C++ Program to Check for balanced parentheses in an expression 176 1
C++ Program to Perform Inorder, Preorder, Postorder traversals in a binary tree. 226 1
C++ program to print Indian flag 265 1
C++ program to Convert a multi level linked list to a singly linked list 174 1
C++ program to print right view of a Binary tree using queue 193 1
C++ Program to implement Huffman Coding Compression Algorithm 773 1
C++ Program to Create a Height Balanced Binary Tree 211 1
C++ program to implement Prims algorithm 299 1
C++ Program for BFS Traversal 215 1
C++ Progam to Evaluate a Prefix Expression 203 1
C++ Program to Implement Queue using Linked List 206 1
C++ implementation of Stack using Linked list 222 1
C++ program to find the intersection point of two linked lists 253 1
C++ program to count the inversions in the given array 232 1
C++ program to perform D.N.F sort 275 1
C++ program to print all possible subsets of a String 247 1
C++ program to count the number of ones in a binary representation of a number 255 1
C++ program to print all possible subsets of a set 277 1
C++ program to find the largest word in a String 240 1
C++ Program to print a matrix in Spiral order 267 1
C++ program to convert from Binary to Decimal, Octal to Decimal, Hexadecimal to Decimal 263 1
C limits library 294 1
Program to add two Binary numbers 256 1

Comments