-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlinkedqueue.cpp
More file actions
121 lines (100 loc) · 2.3 KB
/
linkedqueue.cpp
File metadata and controls
121 lines (100 loc) · 2.3 KB
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include<iostream>
using namespace std;
class node{
private:
int info;
node * next;
friend class queue;
node(int x){
this->info = x;
this->next = NULL;
}
};
class queue{
private:
int Size;
node * Front, * rear;
public:
queue();
bool empty();
void enqueue(int &x);
void dequeue();
int front();
int back();
int size();
};
int main(){
queue a;
int x = 8;
std::cout<<a.front()<<endl;std::cout<<a.back()<<endl;
std::cout<<"The size of the queue is "<<a.size()<<endl;
a.enqueue(x);
std::cout<<"The front of the queue is "<<a.front()<<endl;
std::cout<<"The back of the queue is "<<a.back()<<endl;
x= 9;
a.enqueue(x);std::cout<<"The front of the queue is "<<a.front()<<endl;;
std::cout<<"The back of the queue is "<<a.back()<<endl;
x= 14;
a.enqueue(x);std::cout<<"The front of the queue is "<<a.front()<<endl;;
std::cout<<"The back of the queue is "<<a.back()<<endl;
a.dequeue();std::cout<<"The front of the queue is "<<a.front()<<endl;;
std::cout<<"The back of the queue is "<<a.back()<<endl;
a.dequeue();std::cout<<"The front of the queue is "<<a.front()<<endl;;
std::cout<<"The back of the queue is "<<a.back()<<endl;
a.dequeue();
a.dequeue();
return 0;
}
queue::queue(){
Front = NULL ;
rear = NULL ;
Size = 0;
}
bool queue::empty(){
return(Size==0);
}
void queue::enqueue(int &x){
node * temp = new node(x);
if(Front == NULL && rear == NULL)
Front = rear = temp;
else {
//node * ptr = Front;
//while(ptr->next!=NULL)
//ptr = ptr->next;
node * temp = new node(x);
rear->next = temp;
rear = temp;
}
Size++;
}
void queue::dequeue(){
if(empty())
std::cout<<"The queue is empty\n";
else{
node * temp = Front;
Front = Front->next;
temp->next = NULL;
delete temp;
Size--;
}
}
int queue::front(){
if(empty()){
std::cout<<"The queue is empty\n";
return -1;}
else{
return(Front->info);
}
}
int queue::back(){
if(empty()){
std::cout<<"The queue is empty\n";
return -1;
}
else{
return(rear->info);
}
}
int queue::size(){
return Size;
}