CSci 4651 Problem set 7 source code for recursive functions.


public class TailRecursion {
    public static void main(String [] args) {
        int [] A = {3, 6, 7, 5, 4};
        int [] B = {3, 6, 5, 7, 9};
        System.out.println("sum_array(A,0) = " + sum_array(A,0));
        System.out.println("find(A,0,5) = " + find(A,0,5));
        System.out.println("find(A,0,2) = " + find(A,0,2));
        System.out.println("equal(A,B,0) = " + equal(A,B,0));
        System.out.println("equal(A,A,0) = " + equal(A,A,0));
        System.out.println("equal(A, new int[2],0) = " + equal(A, new int[2],0));
        System.out.println("to_string_reverse(A,0)" +  to_string_reverse(A,0));
   }

    public static int sum_array(int [] A, int i) {
        if (i < A.length) return (A[i] + sum_array(A, i+1));
        return 0;
    }

    public static boolean find(int [] A, int i, int x) {
        if (i >= A.length) return false;
        if (A[i] == x) return true;
        return find(A, i+1, x);
    }

    public static boolean equal(int[] A, int[] B, int i) {
        if (i == A.length)
            if (i == B.length) return true;
            else return false;
        if (A[i] == B[i]) return equal(A, B, i+1);
        else return false;
    }

    public static String to_string_reverse(int [] A, int i) {
        if (i < A.length) {
            return to_string_reverse(A, i + 1) + " " + A[i];
        }
        return "";
    }
}

CSci 4651 course web site.