-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathqueue.hpp
41 lines (41 loc) · 975 Bytes
/
queue.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <string>
using namespace std;
template<typename T>
struct Node{
T data;
Node * next = nullptr;
Node(T d){data=d;}
};
template<class T>
class queue{
private:
Node<T> * frnt = nullptr;
Node<T> * rear = nullptr;
public:
void enqeue(T x){
if(!rear){
rear = new Node<T>(x);
frnt = rear;
return;
}
Node<T> *t = new Node<T>(x);
rear->next = t;
rear = t;
}
void dequeue(){
if(!frnt){cout<<"Queue is empty"<<endl;return;}
Node<T>* temp = frnt;
frnt = frnt->next;
if(frnt == nullptr)
rear = nullptr;
free(temp);
}
T front(){
if(!frnt){cout<<"Nothing in the queue!"<<endl;exit(1);}
return frnt->data;
}
bool isEmpty(){
return !frnt;
}
};