lljakll / reimagined-spoon

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Reimagined-Spoon

CST-201

Algorithms and Data Structures

This Repository encompases all code projects for the above mentioned class at Grand Canyon University. Branches are used to distinguish Weekly Assignments and text examples.

Master - No Code. License and this file. See branches for assignments and projects.

Junky - Sandbox. Code experiments and snippets for CST-201

Project Descriptions

This maze project has seven parts throughout the course. Each part is built upon or is an extension of previous parts. You may have to modify (refactor) previous sections to proceed to the next parts. Therefore, it is very important that your code is clean as the parts become more complicated.

Project: Maze 1 (Due at the end of Topic 1) Write a program that reads in a description of a 2-dimensional maze with a Start and a Goal and then displays the maze. Use a two dimensional array of objects representing the squares. (This program will be extended and “refactored” several times during the class, so it is important to separate concerns into distinct single-purpose objects with minimal coupling.)

Project: Maze 2 (Due at the end of Topic 2) Replace the 2-dimensional array of objects in your Maze 1 program with linked lists of the same objects. The linked lists can be single, double, or circular as you deem appropriate for your implementation. Make as few changes as possible in the rest of the program. Write up what changes to Maze 1 would have reduced the number of such changes necessary. In retrospect, how would you have written Maze 1 differently?

Project: Maze 3 (Due at the end of Topic 3) Use a stack to find paths through the maze (from Start to Goal) utilizing your maze program. Illustrate the progress through the maze at each step. Your program should visually distinguish between the path identified and any backtracking that may have occurred. In addition, illustrate the content of the stack at each step.

Project: Maze 4 (Due at the end of Topic 3) Use a queue to find paths through the maze (from Start to Goal) utilizing your maze program. Illustrate the progress through the maze at each step. Your program should visually distinguish between the path identified and any backtracking that may have occurred. In addition, illustrate the content of the queue at each step.

Project: Maze 5 (Due at the end of Topic 5) Implement a heap (as a priority queue where priority is defined as the Manhattan distance from the goal). Use the heap to find paths through the maze (from Start to Goal) utilizing your maze program. Your program should visually distinguish between the path identified and any backtracking that may have occurred. In addition, illustrate the content of the heap at each step.

Project: Maze 6 (Due at the end of Topic 7) Modify your Maze 3 to represent the maze as a graph and solve by Depth First Search.

Project: Maze 7 (Due at the end of Topic 7) Modify your Maze 4 to represent the maze as a graph and solve by Breadth First Search.

About

License:Apache License 2.0