-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReverseQueueUsingStack.java
More file actions
131 lines (105 loc) · 3 KB
/
Copy pathReverseQueueUsingStack.java
File metadata and controls
131 lines (105 loc) · 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
121
122
123
124
125
126
127
128
129
130
131
import java.util.Scanner;
public class ReverseQueueUsingStack {
static class Stack {
int stack[];
int top;
int size;
Stack(int capacity) {
size = capacity;
stack = new int[size];
top = -1;
}
void push(int val) {
if (top == size - 1) {
System.out.println("Stack Overflow");
} else {
stack[++top] = val;
}
}
int pop() {
if (top == -1) {
System.out.println("Stack Underflow");
return -1;
}
return stack[top--];
}
boolean isEmpty() {
return top == -1;
}
}
static class Queue {
int queue[];
int size;
int front, rear;
Queue(int capacity) {
size = capacity;
queue = new int[size];
front = -1;
rear = -1;
}
void insert(int val) {
if (rear == size - 1) {
System.out.println("Queue Overflow");
return;
}
if (front == -1) {
front = 0;
}
rear++;
queue[rear] = val;
System.out.println(val + " inserted");
}
void display() {
if (front == -1) {
System.out.println("Queue is empty");
return;
}
System.out.print("Queue: ");
for (int i = front; i <= rear; i++) {
System.out.print(queue[i] + " ");
}
System.out.println();
}
void reverse() {
if (front == -1) {
System.out.println("Queue is empty");
return;
}
Stack s = new Stack(size);
for (int i = front; i <= rear; i++) {
s.push(queue[i]);
}
for (int i = front; i <= rear; i++) {
queue[i] = s.pop();
}
System.out.println("Queue reversed successfully");
display();
}
}
public static void main(String args[]) {
Queue q = new Queue(5);
Scanner sc = new Scanner(System.in);
char n;
do {
System.out.println("\n1. insert");
System.out.println("2. reverse()");
System.out.print("Enter choice: ");
int choice = sc.nextInt();
switch (choice) {
case 1:
System.out.print("Enter value: ");
int val = sc.nextInt();
q.insert(val);
break;
case 2:
q.reverse();
break;
default:
System.out.println("Invalid choice");
}
System.out.print("Do you want to continue [y/n]: ");
n = sc.next().charAt(0);
} while (n == 'y' || n == 'Y');
sc.close();
}
}