今天在组长的带领下学习了广度优先遍历算法。
首先一起了解了广度优先遍历算法与深度优先遍历算法的区别:
深度优先遍历算法 使用的栈,后进先出
广度优先遍历算法 使用的是队列,先进先出
其次了解了广度优先遍历算法的实现
1.假设提供的第一个结点是A,先将A 入队列,此时队列内容为:A
2.从队列中取出A,通过A 找到两个节点分是 B 和 C,将它两入队列,此时队列内容为:BC
3.从队列中取出B,通过B 找到D,将D 入队列,此时队列内容为:CD
4.从队列中取出C,通过C找到D,发现D已在队列中,跳过,此时队列内容为:D`
5.从队列中取出D,通过D找到E 和 F,且这两个结点都没访问过,入队列,此时队列内容为:EF
6.从队列中取出E,通过E找到G,将G 入队列,此时队列内容为FG
7.从队列中取出F,通过F找到C,发现C访问过,跳过,此时队列内容为G
8.从队列中取出G,找不到其他结点,
9.此时队列为空,广度优先遍历结束。
然后了解了广度优先遍历算法的优缺点
广度优先遍历算法的优点:
1.对于解决最短或最少问题特别有效,而且寻找深度小。
2.每个结点只访问一遍,结点总是以最短路径被访问,所以第二次路径确定不会比第一次短。
广度优先遍历算法的缺点:
1.内存耗费量大(需要开大量的数组单元用来存储状态)
今天只是初步学习,明天会更加深入学习。
"奋发有为,时不我待,坚定信念,勇往直前"。
http://www.dxsbao.com/shijian/467162.html 点此复制本页地址