Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class LAB6{
- public static void main(String[] args){//only for testing purposes
- int[] testArray = {2,3,4,2,5,12,2,5};
- LispList<Integer> ar = LispList.empty();
- for(int i = testArray.length-1; i>=0; i--){
- ar = ar.cons(testArray[i]);
- }
- System.out.println(positions(ar, 2));
- }
- public static LispList<Integer> positions(LispList<Integer> ar, Integer num){
- if(ar.tail().isEmpty()){// has only one element
- if(ar.head().equals(num)){
- LispList<Integer> ar2 = LispList.empty();
- return ar2.cons(0);
- }
- LispList<Integer> ar3 = LispList.empty();
- return ar3;
- }
- int counter =0;
- Integer head = ar.head();
- if(head.equals(num)){
- LispList<Integer> ar4 = positionsHelper(ar.tail(), num, counter);
- return ar4.cons(counter);
- }
- return positionsHelper(ar.tail(), num, counter);
- }
- private static LispList<Integer> positionsHelper(LispList<Integer> ar, Integer num, Integer counter){
- counter++;
- if(ar.tail().isEmpty()){
- if(num.equals(ar.head())){
- LispList<Integer> ar2 = LispList.empty();
- return ar2.cons(counter);
- }
- LispList<Integer> ar3 = LispList.empty();
- return ar3;
- }
- Integer head = ar.head();
- if(num.equals(head)){
- LispList<Integer> ar4 = positionsHelper(ar.tail(), num ,counter);
- return ar4.cons(counter);
- }
- return positionsHelper(ar.tail(), num, counter);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement