
🚀 作者 :“大数据小禅” 🚀文章简介:本篇文章属于数据结构与算法系列文章,这篇文章会对算法中的递归进行一个详细的介绍,不仅是概念,而是从运行过程中的每一步进行详细分析。并使用递归的方式来完成数据结构图的深度优先遍历 🚀个人主页: 大数据小禅

public static void main(String[] args) {
int result = factorial(5);
System.out.println("5的阶乘结果是:"+result);
}
// 求n的阶乘
public static int factorial(int n) {
if (n <=1) {
return 1;
}
return n * factorial(n - 1);
}
输出:
5的阶乘结果是:120

图的表示可以看我的前一篇文章 这里采用邻接表的方式来表示一个图无向无权图。
1 深度优先遍历,从给定的起始节点出发,起始节点一般有多个相邻节点。深度优先遍历的策略就是先访问起始节点的第一个邻接节点,
然后再以这个被访问的邻接结点作为新的起始节点,再访问它的第一个邻接结点。
指导遍历完成
2 深度优先遍历可通过递归的方式来完成,下面分析实现的核心代码与过程

核心部分代码:

遍历结果
[0, 1, 3, 2, 6, 5, 4]