Very large two-dimensional arrays or matricies often arise in solving problems in areas as diverse as engineering and computer graphics. It is not uncommon for such matrices to have 50,000 rows and 50,000 columns. A tremendous amount of memory would be needed to store such matricies in the conventional manner. For example, if each element is of type float (4 bytes) then 10 GB would be required for the above example! Fortunately, these matricies are often sparse; that is, most elements are zero and only a very few elements are non-zero. To save memory, only the non-zero elements are stored. One way that this can be done is to represent the sparse matrix as a two-dimensional linked list of the non-zero elements.