草庐IT

C语言之走迷宫深度和广度优先(利用堆栈和队列)

 完成以下迷宫 利用二维数组储存每一个数组里的值,若是不能走则为1,若是可行就是0,走过了就设为2。一般是再复制一个数组,用来记录。堆栈的思想就是将一个点的上下左右都遍历一遍,若可行进栈,跳出遍历,再寻找下一个可走的。若遇到无路可走的就退回上一步,就是出栈。所以就是说堆栈里记录的是可以走到终点的路。队列的思想就是一直找,把所有可以走的路都走一遍,直到遇到终点。这里的每一个可以走的点都为链表中的一个节点,在队列中要记录这个点的上一点是什么,就是哪一个点衍生出的这个点。若是堆栈,最后在出栈便是所走的路径,但是堆栈是后进先出的原理,可能为了好看最后要做些处理。若是队列,最后是利用找到的终点的那个节点