-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStack.cpp
More file actions
77 lines (69 loc) · 1.43 KB
/
Copy pathStack.cpp
File metadata and controls
77 lines (69 loc) · 1.43 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
#include <iostream>
using namespace std;
class node {
public:
int info;
node *link;
};
node *start = NULL;
node *PUSH(node *start, int data) {
node *temp;
temp = new node();
temp->info = data;
if (start == NULL) { /*Empty List*/
temp->link = NULL;
start = temp;
return start;
}
node *ptr;
ptr = start;
while (ptr->link != NULL)
ptr = ptr->link;
ptr->link = temp;
temp->link = NULL;
return start;
}
void display(node *start) {
if (start == NULL) {
cout << "Empty Stack\n";
return;
}
node *ptr = start;
while (ptr != NULL) {
cout << ptr->info << " ";
ptr = ptr->link;
}
}
node *POP(node *start) {
if (start == NULL) {
cout << "Empty Stack\n";
return start;
}
node *temp;
if (start->link == NULL) { /*If there is only one element in the STACK*/
temp = start;
start = NULL;
delete (temp);
return start;
}
node *ptr;
ptr = start;
while (ptr->link->link != NULL) {
ptr = ptr->link;
}
temp = ptr->link;
delete (temp);
ptr->link = NULL;
return start;
}
int main() {
start = PUSH(start, 10);
start = PUSH(start, 20);
start = PUSH(start, 30);
display(start);
start = POP(start);
start = POP(start);
start = POP(start);
display(start);
return 0;
}