广度优先搜索解决迷宫问题
Posted C语言进阶学习
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了广度优先搜索解决迷宫问题相关的知识,希望对你有一定的参考价值。
学习难,
难在于当你处于学习过程时对自己的克制,
编程亦是如此。
算法简介
广度优先搜索(Breadth-First Search,简称BFS)算法和深度优先搜索算法相差无几。在《》我们知道,DFS的思想就是“打破砂锅问到底,不撞南墙不回头”。而BFS算法的思想则是,当给定一个点时,它会依次搜索这个点的周边,每搜索到某个点,就以这个点为中心向周边展开搜索,就像地毯式搜索一样,如下图所示。
/*
* 层序遍历
*/
static void lev_order_tree(tree_p node) {
tree_p temp[100];
int front, rear;
if ( node ) {
front = 0;
rear = 1;
temp[0] = node;
while ( front < rear ) {
printf("%d ", temp[front]->value);
if ( temp[front]->left ) {
temp[rear++] = temp[front]->left;
}
if ( temp[front]->right ) {
temp[rear++] = temp[front]->right;
}
front++;
}
}
}
在二叉树的层序遍历中,使用到了队列来辅助。因为要逐层遍历,因此先将每一层的结点依次入队,然后根据出队顺序进行访问即可。
迷宫问题
源码
如果你有想学或者正在学习C语言的好友,长按二维码图即可分享。
也可以长按二维码图添加作者微信交流。
以上是关于广度优先搜索解决迷宫问题的主要内容,如果未能解决你的问题,请参考以下文章