|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
无向图的存储方式有邻接矩阵,邻接链表,稀疏矩阵等。无向图主要包含两方面内容,图的遍历和寻找联通分量。/ ^" y; h! \1 y) B" z6 O& F
/ z6 n/ W- s+ R; y9 x( P% {
一、无向图的遍历
" |. ~8 a8 j1 i N7 r无向图的遍历有两种方式—广度优先搜索(BFS)和深度优先搜索(DFS)。广度优先搜索在遍历一个顶点的所有节点时,先把当前节点所有相邻节点遍历了,然后遍历当前节点第一个相邻的节点的所有相邻节点,广度优先搜索使用队列来实现。深度优先搜索在遍历当前节点的所有相邻节点时,先对当前节点的第一个相邻节点进行访问,然后遍历第一个相邻节点的相邻节点,依次递归,因此深度优先搜索使用栈实现。+ r; l U& k X! m2 B, j
q4 A4 I6 C* N3 j0 p$ K) }1、BFS图遍历代码:2 `' |& d7 d. t- |
8 A/ Q: C) f% A
- function result=BFSTraversal(startNode,Graph)
- % 广度优先搜索
- % Graph 图连通矩阵
- [m n]=size(Graph);
- nodelist=zeros(m,1);
- queue=startNode;
- nodelist(startNode)=1;
- result=startNode;
- while isempty(queue)==false
- i=queue(1);
- queue(1)=[];
- for j=1:n
- if(Graph(i,j)>0&&nodelist(j)==0&&i~=j)
- queue=[queue;j];
- nodelist(j)=1;
- result=[result;j];
- end
- end
- end
7 |) G% U; \0 ~( n
. E' o1 O. e) K" l: b' O6 z
% [2 n9 E+ w8 c0 W% [2 c: j4 F* b- z4 f1 W# l/ E3 w+ p
2、DFS图遍历代码4 k2 G; h4 F- k u7 g/ @- b3 E: n2 g" Q
6 a8 o) A! O3 S8 c' d5 d* v
3 V% i$ A2 X9 z+ D; F B |
|