深度生成森林.cpp

来自「数据结构中关于图的操作,含多种操作方法例子」· C++ 代码 · 共 39 行

CPP
39
字号
#include"h.h"

void dfsforest(graph g,cstree &t)
{
	t=NULL;
	for(v=0;v<g.vexnum;++v)
		visited[v]=0;
	for(v=0;v<g.vexnum;++v)
		if(!visited[v])
		{
			p=(cstree)malloc(sizeof(csnode));
			*p={ getvex(g,v),NULL,NULL};
			if(!t)	t=p;
			else q->nextsibling=p;
			q=p;
			dfstree(g,v,p);
		}
}

void dfstree(graph g,int v,cstree &t)
{
	visited[v]=1;
	first=1;
	for(w=firstadjvex(g,v);w>=0;w=nextsdjvex(g,v,w))
		if(!visited[w])
		{
			p=(cstree)malloc(sizeof(csnode));
			*p={ getvex(g,w),NULL,NULL};
			if(first)
			{
				t->lchild=p;
				first=0;
			}
			else q->nextsibling=p;
			q=p;
			dfstree(g,w,q);
		}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?