Algorithms and Data Structures CAP04S & CAP03S Spring 2006 Exercise 14E (Extra exercise, Recursion) Write a recursive function which determines the size of an ink blob on the surface. Blobs are on a surface, which is described with a two dimensional grid of cells. A cell may be empty or filled with ink. A group of filled cells which are adjacent (connected) to each other) constitutes a blob. The cells can be connected horizontally, vertically or diagonally. The size of a blob is the number of cells in a blob. The grid is represented by two dimensional array. One cell (the row and column numbers of a cell) as well as the array representing the surface is passed to the function and it returns the size of the blob (the number of cells in a blob) where a given cell belongs to. In this case it is allowed, that your function can modify the original array. This is needed to prevent the program to count same cells again. If the cell contains ink you count it and store some special character in it to indicate that it is already counted. You will find a framework for this program on the web (program blobbase.c). A link to that program is next to the link pointing to this file. There is a main function in that file which you can use as such to test your recursive cell counting function. You have to write only a function CellCount. Remark. Keep in mind that recursive solutions usually are very simple.