C++迷宫问题 50
把一只老鼠从一个入口处赶进迷宫,迷宫处设置很多隔壁,对前进的方向形成了多处障碍,假设前进的方向有4个,分别是上、下、左、右,在迷宫的唯一出口处放置了奶酪,吸引老鼠在迷宫中...
把一只老鼠从一个入口处赶进迷宫,迷宫处设置很多隔壁,对前进的方向形成了多处障碍,假设前进的方向有4个,分别是上、下、左、右,在迷宫的唯一出口处放置了奶酪,吸引老鼠在迷宫中寻找通路以达到出口。
(1)可以将迷宫定义成一个二维数组。二维数组的下标可以用于描述老鼠当前的位置,下标元素取值0或1,其中元素值1表示有障碍,元素值0表示无障碍。
(2)对于老鼠前进的4个试探方向上、下、左、右,假定试探方向为顺时针,可以通过某种逻辑关系来表示和实现。
(3)采用回溯法实现问题的求解。从入口出发,按某一方向向前探索,若能走通(未走过的),即某处可以到达,则到达新点,否则试探下一方向;若所有方向均没有通路,则沿原路返回,换下一个方向再继续试探,直到所有可能的通路都搜索到,或找到一条通路到达出口,或无路可走又返回入口点。
为了保证在任何位置上都能够沿原路返回,需要一个后进先出的栈来保存从入口到当前位置的路径。 展开
(1)可以将迷宫定义成一个二维数组。二维数组的下标可以用于描述老鼠当前的位置,下标元素取值0或1,其中元素值1表示有障碍,元素值0表示无障碍。
(2)对于老鼠前进的4个试探方向上、下、左、右,假定试探方向为顺时针,可以通过某种逻辑关系来表示和实现。
(3)采用回溯法实现问题的求解。从入口出发,按某一方向向前探索,若能走通(未走过的),即某处可以到达,则到达新点,否则试探下一方向;若所有方向均没有通路,则沿原路返回,换下一个方向再继续试探,直到所有可能的通路都搜索到,或找到一条通路到达出口,或无路可走又返回入口点。
为了保证在任何位置上都能够沿原路返回,需要一个后进先出的栈来保存从入口到当前位置的路径。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询