CPSC 215 Individual Programming Assignment: (* This assignment must be completed individually *) The purpose of this assignment is to allow you to work on your own and prepare for the upcomming exam, which will ask you to write short programs. The DUE time of the assignment is the date of the exam. You are asked to write a program containing the methods: static int[] listToArray(cell l) /* this routine should take a list (class defined below), and return an array of appropriate length containing all the elements of the list. This method does not have to be recursive. */ static cell arrayToList(int[] A, int starti) /* this routine should convert all the elements in array A, STARTING FROM index starti, into a list. That is, a call of 'arrayToList(A,0)' should return a list will all the elements of the array. This method MUST BE RECURSIVE (which is why you need the index as an extra argument). Hint: if starti == A.length, then the resulting list should be what? */ static cell recursive_insert(int x, int position, cell L) /* this routine should return a NEW list with a cell containing x inserted at position "position" into the list L. List L MUST NOT CHANGE. THIS METHOD MUST BE RECURSIVE. Look at the recursive "delete" method I defined - but DO NOT look at the "insert_at" method that used a while loop: it'll just confuse you. Hint: if position==0, then x should be inserted infront of L. class cell { int head; cell tail; cell (int h, cell t) { head = h; tail = t; } // constructor void print() // prints list { for(cell current = this;current != null; current=current.tail) System.out.print(current.head + " "); System.out.println(""); } } // class cell /* Demonstrate each method with appropriate examples */