Change var name from queue to stack in dfs
Make discovered hash an instance variable
Add recursive depth first search