马的遍历 问题描述设计要求是马从棋盘上的一个位置出发,然后按照中国象棋的规则马走日,来走下一步,直到马走完棋盘上的每一个位置终止。 设计思路首先将棋盘每个位置的标记为0,然后对棋盘周围的两个格子标记为1,用于检测,相当于棋盘的边界。每个节点的包含马走过的位置以及方向。将节点以及下一次要走的方向压入栈中,然后对每个节点可以走的方向进行判断,然后找出最佳的方向。 数据结构设计将节点走过的位置以及方向封装到一起,利用栈的特点实现马的遍历。 功能函数设计void Init_Path(path *p)初始化栈int Push_Path(path *p,pathnode t,int v)将节点以及下一次走的方向压入栈中int Empty(path p)判断栈是否为空int Pop_Path(path *p,pathnode *t)出栈int Count(int x,int y)计算节点周围可以移动的所有方向int Find_Direction(int x,int y)寻找下一次移动的方向void Round(int x,int y,