Queue Using Linked List Class
kaziamir
c_cpp
2 years ago
1.4 kB
11
Indexable
#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();
}
Editor is loading...