-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathqueue_linkedList.cpp
115 lines (97 loc) · 1.89 KB
/
queue_linkedList.cpp
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
/*
* File: queue_linkedList.cpp
* Author: abhishek
*
* Created on 6 April, 2017, 12:04 AM
* linkedList Queue siyappa
*/
#include <bits/stdc++.h>
using namespace std;
/*
*
*/
typedef struct nd{
int data;
struct nd *next;
}node;
node *start = NULL;
node *front = NULL;
node *last = NULL;
int noOfElements = 0;
void enqueue(int a){
node *newNode;
newNode = (node *)malloc(sizeof(node));
if(noOfElements == 0){
newNode->data = a;
start = newNode;
front = start;
last = start;
newNode->next = NULL;
noOfElements++;
}
else{
if(newNode == NULL){
cout<<"Overflow condition\n";
exit(0);
}
else{
newNode->data = a;
last->next = newNode;
newNode->next = NULL;
last = newNode;
noOfElements++;
}
}
}
int dequeue(){
if(noOfElements == 0){
cout<<"Underflow Condition\n";
exit(1);
}
else{
int val = front->data;
node *temp = front;
front = front->next;
free(temp);
noOfElements--;
return val;
}
}
int peek(){
if(noOfElements == 0){
cout<<"Underflow Condition\n";
exit(2);
}
else{
return front->data;
}
}
int main() {
char cont = 'Y';
while(cont != 'n' && cont != 'N'){
int n;
cout<<"1. Enqueue\n";
cout<<"2. Dequeue\n";
cout<<"3. Peek\n";
cin>>n;
switch(n)
{
case 1:
int k;
cin>>k;
enqueue(k);
break;
case 2:
cout<<"Dequeued value is "<<dequeue();
break;
case 3:
cout<<"Peeked val is "<<peek();
break;
defult:
cout<<"Try again later\n";
}
cout<<"Wanna continue? (Y/N)\n";
cin>>cont;
}
return 0;
}