数据结构与算法1800题 图

406 阅读2分钟

等于不可以吗?


DFS,深度优先遍历,因为要记忆经过的节点,便于回溯,所以需要使用栈(先序遍历),
BFS,广度优先遍历,需要使用队列(层次遍历)


DFS,BFS都不能唯一确定一个图(类比于二叉树)


遍历顶点不唯一

不会做


如果有向图的拓扑排序序列是唯一的,则图中必定只有一个顶点的入度为0,一个顶点的出度为0


O(n)

对 广度优先搜索时间复杂度:
使用邻接表存储:
BFS需要借助一个队列,O(V)
顶点表中每一个顶点需要访问一次,在切换顶点的过程中,边需要访问一次,也就是边表必须访问一次,O(E)
总的时间复杂度为: O(V + V + E) = O(V + E)
使用邻接矩阵存储:
队列O(V)
每一个顶点访问一次,搜索每一个顶点所连接的边需要遍历一行,也就是O(V*V) 总的时间复杂度为:O(V + V^2) = O(V^2)
DFS算法的时间复杂度与BFS相同: 如果使用邻接表,那么就是将边表访问完毕+顶点表访问完毕,一共是O(V+E)
如果使用邻接矩阵,那么就是每一个顶点的邻接顶点都需要遍历一行,也就是O(V^2)

错 AOV网的前提是一个DAG图,DAG(有向无环图),所以,AOV网一定具有拓扑排序,但是不一定具有唯一的拓扑排序


一条环路都不允许存在


拓扑排序中,后续节点不存在指向前序节点的路径,前序节点也不一定存在只想后续节点的路径


AOV网: 顶点表示活动(Activity On Vertex)

不是AOV网,而是AOE网