Data structure course design maze algorithm