Implement find
This commit is contained in:
		
							parent
							
								
									5df44cbc44
								
							
						
					
					
						commit
						5566f8f3f9
					
				
					 2 changed files with 32 additions and 1 deletions
				
			
		|  | @ -8,7 +8,21 @@ public class RecursiveOrderedBinaryTreeNodeProcessor<V> extends OrderedBinaryTre | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public boolean find(BinaryTreeNode<V> tree, V v, Comparator<V> cmp) { |     public boolean find(BinaryTreeNode<V> tree, V v, Comparator<V> cmp) { | ||||||
|         return false; |         if (tree == null) { | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         var c = cmp.compare(v, tree.key); | ||||||
|  | 
 | ||||||
|  |         if (c == 0) { | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (c < 0) { | ||||||
|  |             return find(tree.left, v, cmp); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return find(tree.right, v, cmp); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|  |  | ||||||
|  | @ -22,6 +22,23 @@ public abstract class OrderedTreeProcessorTest<T> { | ||||||
|         this.processor = processor; |         this.processor = processor; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     @ParameterizedTest | ||||||
|  |     @ArgumentsSource(ListProvider.class) | ||||||
|  |     void testThat_findOfNonExistsIsFalse(List<Integer> list) { | ||||||
|  |         T t = asTree(list); | ||||||
|  |         assertFalse(processor.find(t, -1, CMP)); | ||||||
|  |         assertFalse(processor.find(t, 999, CMP)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @ParameterizedTest | ||||||
|  |     @ArgumentsSource(ListProvider.class) | ||||||
|  |     void testThat_findOfExistsIsTrue(List<Integer> list) { | ||||||
|  |         T t = asTree(list); | ||||||
|  |         for (var n : list) { | ||||||
|  |             assertTrue(processor.find(t, n, CMP)); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     @Test |     @Test | ||||||
|     void testThat_newEmptyTreeWorks() { |     void testThat_newEmptyTreeWorks() { | ||||||
|         T t = processor.newEmptyTree(); |         T t = processor.newEmptyTree(); | ||||||
|  |  | ||||||
		Reference in a new issue