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

上一篇:2021.7.31zyy chipseq


下一篇:字符串