数据结构——图

图的遍历

void DeepTraOne(GraphmatrixGM, int n)
{
int i;
GM.isTrav[n]=1;
System.out.println("GM.Vertex[n]");

//添加处理节点的操作 
for(int i=0;i<GM.VertexNum;i++)
{
if(GM.EdgeWeight[n][i]!=GraphMatrix.MaxValue&&GM.isTrav[n]==0)
{
DeepTraOne(CM,i)
}
}
} 
//深度优先遍历
void DeepTraph(GraphMatrix GM)
{
int i;
for(i=0;i<GM.VertexNum;i++)
{
if(GM.isTrav[i]==0)
{
DeepTraOne(GM,i);
}

}

深度优先遍历:

 void DFS(GraphClass & gobj,int v)
{
int i;
for(i=0;i<gobj.G->n;i++)visited[i]=0;
DFS1(gobj.G,v);
}

void DFS1(ALGraph *G,int v)
{
int w;ArcNode *p;
visited[v]=1;
p=G->adjlist[v].firstarc;
while(p!=null)
{
w=p->adjvex;
if(visited[w]==0)
DFS1(G,w);//进行递归遍历

p=p->nextarc;
}
}

 

 

你可能感兴趣的:(数据结构——图)