bfs
借助一个队列将头结点放入队列,拿出队列头,循环放入与头相连接的结点。
queue<Node> mq;
while(!mq.empty())
{
Node c=mq.front();
if(c是要找的点)
结束
<!-- 循环判断是否相连 -->
<!-- visited判重 -->
mq.pop()
}
- 判重时visited要记录所有的维度。
- O(n),但是额外用了n个Node结点的空间
- 一层一层的搜索,所以第一个碰到的点一定是最短路径。
- 如果只要输出长度,Node里加一个step表示长度即可。但如要输出整个路径过程,则要自己用数组构造一个队列,用phead,ptail记录头尾。