图的遍历:
深度优先遍历(DFS)
对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次
广度优先遍历(BFS)
系统地展开并遍历图中的所有节点,而且每个节点只能访问一次,与队列配合进行
图的存储结构:
链接矩阵:
用一个一维数组存储n个顶点,用一个n*n的二维数组存储边
char V[n] = {A,B,C,D,E,F,G};
A B C D E F G
A [0][1][0][1][0][0][0]
B [1][0][0][1][1][0][0]
C [0][0][0][1][0][1][0]
D [1][1][1][0][0][0][1]
E [0][1][0][0][0][0][1]
F [0][0][1][0][0][0][1]
G [0][0][0][1][1][1][0]
在二维数组E[i][j]值为1,则表示顶点V[i]到v[j]有边
注意: 由于不存在自己到自己的边,左对角线上的值一定为0
如果存储的是无向图则二维数组的值沿对角线对称,可以压缩成一维数组(参考矩阵压缩)
A B C D E F G (弧头)
A [0][1][0][1][0][0][0]
B [0][0][0][1][1][0][0]
C [0][0][0][1][0][1][0]