图:
树是一种特殊的图,它是一种无环连通图。
图可以分为以下几个方面:
-
存储方式:
- 有向图:
- 邻接矩阵:使用二维数组 g[a][b] 来储存节点 a 到节点 b 之间的信息。
- 邻接表:使用链表或者类似拉链法哈希的结构来表示,常用于存储。
- 无向图:是一种特殊的有向图,两个方向的有向图。
- 有向图:
-
遍历方式:
- 深度优先搜索:从起始节点出发,沿着一条路径一直深入,直到无法继续为止,然后回溯到前一个节点,继续探索其他路径。
- 宽度优先搜索:从起始节点开始,逐层遍历图中的节点,先访问当前层的所有节点,再访问下一层的节点。
-
拓扑序列(仅适用于有向图):拓扑序列是一个节点的线性排列,满足以下条件:如果存在一条从节点 A 到节点 B 的有向边,那么在拓扑序列中,节点 A 将出现在节点 B 的前面。
- 入度:指向某个节点的边的数量,即有多少条边指向该节点。
- 出度:从某个节点出发的边的数量,即有多少条边从该节点指出。
图bfs的例子:
拓扑排序: