Maze traversal is a perfect application of how recursion really nicely fits these things. All you have to actually change between depth first search and breadth first search, for example, is the data structure. It's remarkable how all o these techniques, when you write them out in code, they're very, very similar.