
void DESForest ( Graph G, CSTree *T )
{ /*建立无向图G 的深度优先生成森林的孩子兄弟链表T*/
T=NULL;
for ( v=0; v<G.vexnum; ++v )
if ( !visited[v]=FALSE;
for ( v=0; v<G.vexnum; ++v )
if ( !visited[v] ) /*顶点v 为新的生成树的根结点*/
{
p= ( CSTree ) malloc ( sixeof ( CSNode ) ); /*分配根结点*/
p={GetVex ( G,v ).NULL,NULL}; /*给根结点赋值*/
if ( !T )
( *T ) =p; /*T 是第一棵生成树的根*/
else q->nextsibling=p; /*前一棵的根的兄弟是其它生成树的根*/
q=p; /*q 指示当前生成树的根*/
DFSTree ( G,v,&p ); /*建立以p 为根的生成树*/
}
}



