forked from vishnuparikh/vmp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path14 STLStackQueue.cpp
More file actions
127 lines (118 loc) · 2.18 KB
/
Copy path14 STLStackQueue.cpp
File metadata and controls
127 lines (118 loc) · 2.18 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
121
122
123
124
125
126
127
/*
Write C++ program using STL for implementation of stack & queue using SLL
*/
#include<iostream>
#include<cstdlib>
#include<list>
#include<iterator>
using namespace std;
class Queue
{
private:
list<int> lst;
public:
void enqueue(int a);
void dequeue();
void display();
};
void Queue::display()
{
list<int>::iterator st,en;
st=lst.begin();
en=lst.end();
if(st==en)
cout<<"Queue is Empty";
else
{
cout<<"\n**Queue**\n";
while(st!=en)
{
cout<<*st<<' ';
st++;
}
}
}
void Queue::dequeue()
{
lst.pop_front();
}
void Queue::enqueue(int a)
{
lst.push_back(a);
}
class Stack
{
private:
list<int> l;
public:
void push(int a);
void pop();
void display();
};
void Stack::display()
{
list<int>::iterator st,en;
st=l.begin();
en=l.end();
if(st==en)
cout<<"Stack is Empty\n";
else
{
cout<<"\n**Stack**\n";
while(st!=en)
{
en--;
cout<<*en<<'\n';
}
}
}
void Stack::pop()
{
l.pop_back();
}
void Stack::push(int a)
{
l.push_back(a);
}
int main()
{
int choice,a;
Stack s;
Queue q;
while(1)
{
cout<<"**Stack Operations**\n1.Push Element\n2.Pop Element\n3.Display Stack\n";
cout<<"**Queue Operations**\n4.Enqueue Element\n5.Dequeue Element\n6.Display Queue\n\n7.Exit";
cout<<"\n\nEnter Operation Code: ";
cin>>choice;
switch(choice)
{
case 1:
cout<<"Enter element to push: ";
cin>>a;
s.push(a);
break;
case 2:
s.pop();
break;
case 3:
s.display();
break;
case 4:
cout<<"Enter element to add to queue: ";
cin>>a;
q.enqueue(a);
break;
case 5:
q.dequeue();
break;
case 6:
q.display();
break;
default:
exit(0);
}
cout<<"\n\n";
}
return 0;
}