guanjiedian.c

来自「1、 图的存储结构的定义和图的创建 图的种类有:有向图、无向图、有向网、无向网」· C语言 代码 · 共 55 行

C
55
字号
#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 + =
减小字号Ctrl + -
显示快捷键?