棋盘中有一个马给出它的位置,它有一个目的地请问它最少需要多少步才能走到它的目的地。
?第二行:x1y1,表示马的位置。 ?第三行:x2y2,表示它的目的地。 ?保證起始和终止位置都在棋盘内 如果马不能到达目的地,输出-1.
马走到目的地所需的最少步数
//dr是方向数组quex,queyques是队列数组(可以用结构体),ques是扩展的层数 //book标记走过的点flag用来判断是否找到,和退出循环 //队头和队尾出始值为1 //把起点坐标入队tail指向队尾后一个元素
//当队头与对尾指向同一个位置时退出循环 //将现在的坐标入队,并且tail指向队尾的后一个元素 //层数是待扩展节点的层数+1 //當马到达终点,退出循环 //如果找到了退出循环 //扩展结束,再换下一个扩展
//flag=0时没有找到,因为tail指向的始终是队尾的后一个元素所以减1