Solutions to Problems 1, 2, and 3 can be checked by running given code. Here are solutions to Problems 4-7 that require you to write recursive functions. Problem 4. def recursiveLinearSearch(L, k, left, right): # Base case: the slice to be searched is empty if left > right: return False # Recursive case return k == L[left] or recursiveLinearSearch(L, k, left+1, right) Problem 5. def isSorted(L, left, right): #Base Case: an empty list is sorted and so is a list with one element if left > right or left == right: return True # Recursive case: the first two elements need to be in order and # the rest of the list, starting at position left+1 needs to be sorted return L[left] <= L[left+1] and isSorted(L, left+1, right) Problem 6. def recursiveI2B(n): # Base cases if n == 0: return "0" if n == 1: return "1" # Recursive Case if n % 2 == 0: return recursiveI2B(n/2) + "0" else: return recursiveI2B(n/2) + "1" Problem 7. def minimum(L): # Base case: L has exactly one element if len(L) == 1: return L[0] # Recursive case: L has 2 or more elements m = minimum(L[1:]) if m < L[0]: return m else: return L[0]