Add ReverseQueueRecursion.java: Reverse a Queue using recursion (#7281)

* Create ReverseQueueRecursion

Add ReverseQueueRecursion.java:
- Reverses a Queue using recursion (generic <T>)
- Includes unit tests in ReverseQueueRecursionTest.java
- Follows repo style (final class, private constructor, Javadoc)

* Create ReverseQueueRecursionTest.java

Add ReverseQueueRecursionTest as required by CONTRIBUTING.md

* Rename ReverseQueueRecursion to ReverseQueueRecursion.java

* Update ReverseQueueRecursion.java

* Update ReverseQueueRecursion.java

* Update ReverseQueueRecursion.java

* Update ReverseQueueRecursion.java

* Update ReverseQueueRecursionTest.java

* Update ReverseQueueRecursion.java

* Update ReverseQueueRecursionTest.java

* Update ReverseQueueRecursionTest.java

* Update ReverseQueueRecursion.java

* Update ReverseQueueRecursionTest.java

* Update ReverseQueueRecursionTest.java

* Update ReverseQueueRecursionTest.java

* Update ReverseQueueRecursionTest.java

* Update ReverseQueueRecursion.java
This commit is contained in:
Vasundhara117
2026-02-24 00:36:51 +05:30
committed by GitHub
parent 12935c291d
commit 10114b79ae
2 changed files with 82 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
package com.thealgorithms.datastructures.queues;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.LinkedList;
import java.util.Queue;
import org.junit.jupiter.api.Test;
class ReverseQueueRecursionTest {
@Test
void testReverseMultipleElements() {
Queue<Integer> queue = new LinkedList<>();
queue.add(1);
queue.add(2);
queue.add(3);
queue.add(4);
ReverseQueueRecursion.reverseQueue(queue);
assertEquals(4, queue.poll());
assertEquals(3, queue.poll());
assertEquals(2, queue.poll());
assertEquals(1, queue.poll());
assertTrue(queue.isEmpty());
}
@Test
void testReverseSingleElement() {
Queue<Integer> queue = new LinkedList<>();
queue.add(42);
ReverseQueueRecursion.reverseQueue(queue);
assertEquals(42, queue.poll());
assertTrue(queue.isEmpty());
}
@Test
void testReverseEmptyQueue() {
Queue<Integer> queue = new LinkedList<>();
ReverseQueueRecursion.reverseQueue(queue);
assertTrue(queue.isEmpty());
}
@Test
void testReverseStringQueue() {
Queue<String> queue = new LinkedList<>();
queue.add("A");
queue.add("B");
queue.add("C");
ReverseQueueRecursion.reverseQueue(queue);
assertEquals("C", queue.poll());
assertEquals("B", queue.poll());
assertEquals("A", queue.poll());
assertTrue(queue.isEmpty());
}
}