Reverse First K elements of Queue Java
- Get link
- X
- Other Apps
PROGRAM TO REVERSE THE FIRST K ELEMENTS OF A QUEUE
import
java.util.LinkedList;
import
java.util.Queue;
import
java.util.Stack;
public
class
Reverse_k_element_queue {
static
Queue<Integer> queue;
// Function to reverse the first
// K elements of the Queue
static
void
reverseQueueFirstKElements(
int
k)
{
if
(queue.isEmpty() ==
true
|| k > queue.size())
return
;
if
(k <=
0
)
return
;
Stack<Integer> stack =
new
Stack<Integer>();
// Push the first K elements into a Stack
for
(
int
i =
0
; i < k; i++) {
stack.push(queue.peek());
queue.remove();
}
// Enqueue the contents of stack
// at the back of the queue
while
(!stack.empty()) {
queue.add(stack.peek());
stack.pop();
}
// Remove the remaining elements and enqueue
// them at the end of the Queue
for
(
int
i =
0
; i < queue.size() - k; i++) {
queue.add(queue.peek());
queue.remove();
}
}
// Utility Function to print the Queue
static
void
Print()
{
while
(!queue.isEmpty()) {
System.out.print(queue.peek() +
" "
);
queue.remove();
}
}
// Driver code
public
static
void
main(String args[])
{
queue =
new
LinkedList<Integer>();
queue.add(
10
);
queue.add(
20
);
queue.add(
30
);
queue.add(
40
);
queue.add(
50
);
queue.add(
60
);
queue.add(
70
);
queue.add(
80
);
queue.add(
90
);
queue.add(
100
);
int
k =
5
;
reverseQueueFirstKElements(k);
Print();
}
}
OUTPUT:
50 40 30 20 10 60 70 80 90 100
- Get link
- X
- Other Apps
Comments
Post a Comment