Objective This project provides experience implementing an array based queue and a linked list sequence. You will also review how to construct and use Java classes as well as obtain experience with software design and testing. ABET Program Learning Outcomes The ability to recognize the need for data structures and choose the appropriate data structure (b,c,i,j) The ability to evaluate the performance of an algorithm (b,c,i) The ability to implement and use stacks and queues (a,b,c,i,j) The ability to implement and use linked list and array based structures (a,b,c,ij) The Problem The programming problem in this project is to find a path from the entry cell (upper left corner to the exit cell (ower right corner) of a rectangular maze (labyrinth). The maze is a grid of cells. Each cell is bordered by 4 walls. Some of these walls are passable to the neighboring cell. The border line of the whole maze that is, the perimeter of the rectangle is not passable. You may consider the external walls of the entry as passable one-way in and the external walls of the exit are passable one-way out, though these assumptions are irrelevant to the solution of the programming problem. The program obtains input to build the a maze; input supplied by an external file finds a path through a maze if such a path exists displays the solution (or one of the solutions), that is a path traversing the maze; the display shows all the locations of the cells along the path on the console; the cells listed from entry to exit determines the farthest cell on an attempted path in the case the traversal failed and displays the path leading to the max distance cell creates a graphical representation of the solution (optional for bonus points) There are figures given in an attached file Figures.doc that illustrate the requirements specified in Problem description. the