mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
Add TortoiseHareAlgo implementation with append, toString, and getMiddle methods (#6722)
* Create TortoiseHareAlgorithm.java
Implement TortoiseHareAlgo with append, getMiddle, and toString methods
- Added generic singly linked list with inner Node class
- Implemented append() to add elements
- Implemented getMiddle() using Tortoise-Hare approach
- Added toString() for readable list representation
* Create TortoiseHareAlgoTest.java
Add JUnit tests for TortoiseHareAlgo
- Verified append() and toString() output
- Tested getMiddle() for odd, even, and empty lists
- Ensured correct behavior and null handling
* Update README.md
Add TortoiseHareAlgo to linked list documentation
- Added TortoiseHareAlgo.java to file descriptions
- Described its purpose: finding middle element using Tortoise-Hare algorithm
* Rename TortoiseHareAlgorithm.java to TortoiseHareAlgo.java
Fixed build error
* Update TortoiseHareAlgoTest.java
Fixed line formatting build error
* Update TortoiseHareAlgoTest.java
Fixed line formatting build error
* Update TortoiseHareAlgo.java
Added {} after if statement instead of directly writing statement
* Update TortoiseHareAlgo.java
Fixed line formatting build error
* Update TortoiseHareAlgo.java
Added {} after if statement instead of directly writing statement
* Update TortoiseHareAlgoTest.java
Replace .* import with specific imports
---------
Co-authored-by: Deniz Altunkapan <deniz.altunkapan@outlook.com>
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package com.thealgorithms.datastructures.lists;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class TortoiseHareAlgoTest {
|
||||
|
||||
@Test
|
||||
void testAppendAndToString() {
|
||||
TortoiseHareAlgo<Integer> list = new TortoiseHareAlgo<>();
|
||||
list.append(10);
|
||||
list.append(20);
|
||||
list.append(30);
|
||||
assertEquals("[10, 20, 30]", list.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetMiddleOdd() {
|
||||
TortoiseHareAlgo<Integer> list = new TortoiseHareAlgo<>();
|
||||
list.append(1);
|
||||
list.append(2);
|
||||
list.append(3);
|
||||
list.append(4);
|
||||
list.append(5);
|
||||
assertEquals(3, list.getMiddle());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetMiddleEven() {
|
||||
TortoiseHareAlgo<Integer> list = new TortoiseHareAlgo<>();
|
||||
list.append(1);
|
||||
list.append(2);
|
||||
list.append(3);
|
||||
list.append(4);
|
||||
assertEquals(3, list.getMiddle()); // returns second middle
|
||||
}
|
||||
|
||||
@Test
|
||||
void testEmptyList() {
|
||||
TortoiseHareAlgo<Integer> list = new TortoiseHareAlgo<>();
|
||||
assertNull(list.getMiddle());
|
||||
assertEquals("[]", list.toString());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user