标签:
两种典型的遍历的方法
深度优先搜索的伪码描述
void DFS(Vertex V){ visited[V] = true; for (V的每个邻接点W) if (!isvisited[W]) DFS(W); }
相当于树的先序遍历DFS是树的先序遍历的推广
若有N个顶点,E条边,DFS的时间复杂度是多少呢? 无法确定!
相当于在树里面层序遍历(从上到下,从左到右一层一层的访问)用到了队列,弹出一个,入队它的左右孩子。
树是一种特殊的图,
BFS的伪码描述
void BFS(Vertex V){ visited[V] = true; Enqueue(V, Q); while (!IsEmpty(Q)) V = Dequeue(Q); for (V的每个邻接点W) if (!visited[w]){ visited[W] = true; Enqueue[W, Q]; } }
若有N个顶点,E条边,DFS的时间复杂度是多少呢? 无法确定!
标签:
原文地址:http://www.cnblogs.com/zrui513/p/4762523.html