图的存储结构:邻接表表示方法,适用于有向图和无向图
图的遍历:
从图的某顶点出发,访问图中所有顶点,并且每个顶点仅访问一次。
图中可能有回路,遍历可能沿回路又回到已遍历过的结点。为避免同一顶点被多次访问,必须为每个被访问的顶点作一标志。为此引入一辅助数组, 记录每个顶点是否被访问过。
有两种遍历方法:深度优先遍历和广度优先遍历算法
(它们对无向图,有向图都适用)
深度优先遍历:(可以用来判断图中是否存在环)
思路:从图的某一顶点V0出发,访问此顶点;然后依次从V0的未被访问的邻接点出发,深度优先遍历图,直至图中所有和V0相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点作起点,重复上述过程,直至图中所有顶点都被访问为止。
在深度优先遍历中,由于没为有规定访问邻接点的顺序,所以深度优先序列不是唯一的。
补充:如果存储结构确定了则图的深度优先遍历是唯一的。如下:
无向图:
有向图: