/*深度优先建立深林,孩子兄弟法*/
void DFSForest(Graph G , Tree &T)
{
T = NULL ;
memset(vi , 0 , sizeof(vi));
for( v = 0 ; v < G.vexnum ; v ++)
if(!vi[v]){
p = (Tree)malloc(sizeof(node));
*p = {getvalue(G,v) , NULL , NULL};
if(!T)
T = p ;
else
q->nextsibling = p ;
q = p ;
DFS(G , v , p ) ;
}
}
void DFS(Graph G , int v , Tree &T)
{
vi[v] = 1 ;
first = true ;
for( w = firstadjex(G,v) ; w >= 0 ; w = nextadjex(G , v , w ))
{
if(!vi[w])
{
p = (Tree)malloc(sizeof(node));
*p={getvalue(G,w),NULL,NULL};
if(first)
T->lchild = p ;
else
q->nextsilbing = p ;
q = p ;
DFS(G,w,p);
}
}
}