1——2:略
3. 使用单个位来表示颜色,单个位只能表示位0/1,因此颜色只有白和灰,黑色无法表示,因此删除第十八行对每个结点扫描结束后赋值为黑色的一行代码。
证明:直接一想就可以,代码第十三行,v.color==WHITE才会进行处理,灰色同样不处理,而算法最后之所以设置为黑色,是为了在研究算法的过程中给出一个更加形象的说明而已。
4. 如果换成邻接矩阵的话,BFS的时间复杂度将变为多少
如果换成邻接矩阵,在扫描队列中结点i的时候,必须将mat(i,-)这一行所有的结点都扫描1遍,复杂度为O(V),而扫描队列中每个结点,因此复杂度为O(V^2)。
5. 证明:在广度优先算法里,赋给结点u的u.d值与结点在邻接链表里出现的次序无关。使用下图为例子,证明:BFS所计算出来广度优先树可以因邻接链表中的次序不同