void FindArticul ( ALGraph G ) |
{ /*连通图G 以邻接表作存储结构,查找并输出G 上全部关节点*/ |
count=1; /*全局变量count 用于对访问计数*/ |
visited[0]=1; /*设定邻接表上0 号顶点为生成树的根*/ |
for ( i=1; i<G.vexnum; ++i ) /*其余顶点尚未访问*/ |
visited[i]=0; |
p=G.adjlist[0].first; |
v=p->adjvex; |
DFSArticul ( g,v ); /*从顶点v 出发深度优先查找关节点*/ |
if ( count<G.vexnum ) /*生成树的根至少有两棵子树*/ |
{ |
printf ( 0,G.adjlist[0].vertex ); /*根是关节点,输出*/ |
while ( p->next ) |
{ |
p=p->next; |
v=p->adjvex; |
if ( visited[v]==0 ) DFSArticul ( g,v ); |
} |
} |
} /*FindArticul*/ |