Advertisement
Guest User

Untitled

a guest
Oct 26th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.44 KB | None | 0 0
  1. class LAB6{
  2.  
  3.     public static void main(String[] args){//only for testing purposes
  4.    
  5.         int[] testArray = {2,3,4,2,5,12,2,5};
  6.         LispList<Integer> ar = LispList.empty();
  7.         for(int i = testArray.length-1; i>=0; i--){
  8.            
  9.             ar = ar.cons(testArray[i]);
  10.            
  11.         }
  12.        
  13.         System.out.println(positions(ar, 2));
  14.    
  15.     }
  16.    
  17.     public static LispList<Integer> positions(LispList<Integer> ar, Integer num){
  18.        
  19.         if(ar.tail().isEmpty()){// has only one element
  20.            
  21.             if(ar.head().equals(num)){
  22.                 LispList<Integer> ar2 = LispList.empty();
  23.                 return ar2.cons(0);
  24.             }
  25.             LispList<Integer> ar3 = LispList.empty();
  26.             return ar3;
  27.         }
  28.         int counter =0;
  29.         Integer head = ar.head();
  30.         if(head.equals(num)){
  31.            
  32.             LispList<Integer> ar4 = positionsHelper(ar.tail(), num, counter);
  33.             return ar4.cons(counter);
  34.            
  35.         }
  36.         return positionsHelper(ar.tail(), num, counter);
  37.     }
  38.    
  39.     private static LispList<Integer> positionsHelper(LispList<Integer> ar, Integer num, Integer counter){
  40.        
  41.         counter++;
  42.        
  43.         if(ar.tail().isEmpty()){
  44.            
  45.             if(num.equals(ar.head())){
  46.                
  47.                 LispList<Integer> ar2 = LispList.empty();
  48.                 return ar2.cons(counter);
  49.                
  50.             }
  51.             LispList<Integer> ar3 = LispList.empty();
  52.             return ar3;
  53.            
  54.         }
  55.         Integer head = ar.head();
  56.         if(num.equals(head)){
  57.             LispList<Integer> ar4 = positionsHelper(ar.tail(), num ,counter);
  58.             return ar4.cons(counter);
  59.            
  60.         }
  61.         return positionsHelper(ar.tail(), num, counter);
  62.        
  63.        
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement