Java教程

DFS算法笔记

本文主要是介绍DFS算法笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

概述

对于一个连通图,从一个节点出发,沿着一个分支一直深入,直至无法继续深入为止( 回退至上一个分支节点 ),且每个节点仅访问一次。

实现方式

递归实现

void dfs(myNode* sam)
{
	sam->visited = 1;
	for(int i = 0; i < n; i++)
		if(sam->next[i]->visited == 0)dfs(sam->next[i]);
} 

使用栈实现

将访问的节点入栈,再通过栈顶节点的next指针找到新的节点入栈,当与栈顶的节点关联的节点都已被访问过时,栈顶节点出栈。最终遍历完成整个连通图。(其实递归只是自动形成了递归栈,无需我们手动操作栈)

这篇关于DFS算法笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!