📄 guanjiedian.c
字号:
#include"graph.h"
#define MAX 20
int min,count;
int low[MAX],visited[MAX];
void DFSArticul(ALGraph G,int v0);
void FindArticul(ALGraph G)
{
ArcNode *p;
int i,v;
count=1;visited[0]=1;
for(i=1;i<G.vexnum;i++)
visited[i]=0;
p=G.vertices[0].firstarc;
v=p->adjvex;
DFSArticul(G,v);
if(count<G.vexnum)
{
printf("0 %c\n",G.vertices[0].data);
while(p->nextarc)
{
p=p->nextarc;
v=p->adjvex;
if(visited[v]==0)
DFSArticul(G,v);
}
}
}
void DFSArticul(ALGraph G,int v0)
{
ArcNode *p;
int w;
visited[v0]=min=++count;
for(p=G.vertices[v0].firstarc;p;p=p->nextarc)
{
w=p->adjvex;
if(visited[w]==0)
{
DFSArticul(G,w);
if(low[w]<min)
min=low[w];
if(low[w]>=visited[v0])
printf("%d %c\n",v0,G.vertices[v0].data);
}
else
if(visited[w]<min)
min=visited[w];
low[v0]=min;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -