Queue Using Linked List Class
c_cpp
a month ago
1.4 kB
4
Indexable
Never
#include<bits/stdc++.h> using namespace std; typedef struct node{ int data; struct node *next; }node; node *frnt=NULL, *rear=NULL, *tofree=NULL, *p = NULL; void enqueue(int x){ node *newNode = (node *)malloc(sizeof(node)); if(newNode!=NULL){ newNode->data = x; newNode->next = NULL; if(frnt==NULL && rear==NULL){ frnt = newNode; rear = newNode; } else{ rear->next = newNode; rear = newNode; } cout<<"Enqueued data: "<<x<<endl; } else{ cout<<"Can't Enqueue"<<endl; } } void dequeue(){ if(frnt!=NULL){ tofree = frnt; frnt = frnt->next; if(frnt==NULL){ rear = frnt; } cout<<"Dequeued Data: "<<tofree->data<<endl; free(tofree); } else{ cout<<"Queue Empty! Can't Dequeue..."<<endl; } } void display(){ p = frnt; cout<<"Current Queue: "; if(frnt!=NULL){ while(p!=NULL){ cout<<p->data<<" "; p = p->next; } cout<<endl; } else{ cout<<"Empty!"<<endl; } } void solution(){ display(); for(int i=1;i<=10;i++){ enqueue(i); } display(); for(int i=1;i<=5;i++){ dequeue(); } display(); for(int i=1;i<=6;i++){ dequeue(); } display(); } int main(){ solution(); }