适合的读者:学生;初级程序员

前言

程序设计本质上是为了解决生产中的问题,而有时候我们面临的问题无法用有限的数学公式来解决,比如树形目录、无限分类等等,类似这种问题,用递归函数来解决就方便多了。

那什么是递归呢?“在程序设计中,过程或函数直接或者间接调用自己,就被称为递归调用。”其实递归说白了就是调用自己,直到问题解决或者达到调用上限。有些同学可能觉得晦涩难懂,没关系,我们通过编程实践来帮助理解,为了方便大家直接复制运行,下面的例子包含JavaScript、Python、PHP、Java四种热门语言。

【JavaScript】无限分类

假设我们不知道分类到底有多少级,现在我们要将后端传来的数组遍历以后渲染到页面上。

执行结果

【Python】遍历目录

假设我们不知道文件夹有多少级子目录,现在我们要遍历文件夹将文件夹里的文件路径全部打印出来。

import osdef listPath(path): ''' 递归函数 遍历目录里的文件 :param path:目录路径 ''' #遍历文件夹 items = os.listdir(path) for item in items: #子目录路径 path_child = '{}/{}'.format(path, item) #如果是目录则递归调用 if os.path.isdir(path_child): listPath(path_child) #因为是文件夹所以再次调用自己这个函数,把这个文件夹下的文件遍历出来 #如果是文件夹则输出文件夹名字 else: print(path_child)listPath('./')

执行结果

【PHP】遍历目录

假设我们不知道文件夹有多少级子目录,现在我们要遍历文件夹将文件夹里的文件路径全部打印出来。

<?php /** * 递归函数 * 遍历目录里的文件 * @param $path 目录路径 */function listPath($path){ //读取文件夹下的目录 $items = scandir($path); //遍历文件夹 foreach($items as $item){ //判断是否为系统隐藏的文件.和.. 如果是则跳过,防止无限循环再这里。 if($item=='.' || $item=='..'){ continue; } //子目录路径 $path_child = $path.'/'.$item; //如果是目录则递归调用 if(is_dir($path_child)){ listPath($path_child);//因为是文件夹所以再次调用自己这个函数,把这个文件夹下的文件遍历出来 //如果是文件夹则输出文件夹名字 }else{ echo $path_child.""; } }}listPath('./');

执行结果

【Java】遍历目录

假设我们不知道文件夹有多少级子目录,现在我们要遍历文件夹将文件夹里的文件路径全部打印出来。

import java.io.File;public class Main { public static void main(String[] args) { listPath(new File("./")); } /** * 递归函数 * 遍历目录里的文件 * @param path 目录路径 */ protected static void listPath(File path){ //遍历文件夹 File[] items=path.listFiles(); for ( File item : items) { //如果是目录则递归调用 if(item.isDirectory()) { listPath(item); //因为是文件夹所以再次调用自己这个函数,把这个文件夹下的文件遍历出来 //如果是文件夹则输出文件夹名字 }else { System.out.println(item); } } }}

执行结果

总结

递归算法在日常的生产开发中还有很大的用处,大家要好好记住递归算法哦。

我是搞技术的庄大叔,以上内容如果有误,请广大条友指正。

c++遍历文件夹下的文件_算法面试|开发者必备|使用递归函数进行无限分类及文件夹遍历...相关推荐

  1. iphone固件降级_手机资讯:降级必备:Phone5如何下载备份SHSH文件

    如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多知识的,这些知识很多小伙伴一般都是不知道的,就好比最近就有很多小伙伴们想要知道降级必备:Phone5如何下载备份SHSH文件,那 ...

  2. 实现一个二叉树层级遍历_算法总结:左神class5—二叉树递归和非递归实现遍历(后序用一个栈彩蛋)...

    二叉树类型的题目为常考题型 1.能够结合队列.栈.链表.字符串等很多数据结构. 2.需要掌握图的基本遍历方式,比如BFS和DFS. 3.需要掌握递归函数的使用,并自己设计出递归过程. 4.与实际工作结 ...

  3. java使用队列实现栈思路_算法面试:队列实现栈的方案

    声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本篇介绍的是如何用两个队列实现栈的问题.这道题作为上一篇文章算法面试:栈实现队列 ...

  4. docker -v 文件夹下没有数据_详细!快速入门指南!Docker

    什 么 是 容 器? 容器只是实现隔离的一种方法.与虚拟机不同,它们不是通过模拟硬件来实现隔离,而是通过使用现有的Linux内核功能来实现隔离.在典型的Unix/Linux操作系统中,所有进程都共享相 ...

  5. python获取文件夹下的子目录_用Python获取子目录或文件列表

    在Python编程中,如果需要对文件进行操作的话,有时会需要搜索指定目录下的特定类型的文件.获取子目录或文件列表用得较多的是os.walker和glob.大器推荐你用glob,从下面的示例代码可以显而 ...

  6. docker -v 文件夹下没有数据_微服务就是Dubbo?并没有那么简单!微服务架构+Docker+k8s了解下...

    微服务算是面试中非常高频的词汇了! 之前我就遇到一个候选人,我问他微服务是什么,他说:"微服务就是 Dubbo--",然后把 Dubbo 的原理说的清清楚楚.回答的我都动心了,我猜 ...

  7. 从一个文件夹下随机抽取一定数量(比例)的图片移动到另一个文件夹 Python3实现

  8. blf文件用什么软件打开_如何用皕杰流程创建一个blf演示流程文件?

    1. 打开BIOS Studio.exe报表流程设计器,新建项目,命名为演示流程项目: 2. 在项目下新建目录,命名为演示流程: 3. 在目录下新建工作流程bfl文件,流程名称leaveFlow,显示 ...

  9. c++矩阵连乘的动态规划算法并输出_算法面试必修课,动态规划基础题型归纳(三)

    动态规划(Dynamic Programming,简称DP),是大家都觉得比较难以掌握的算法.为了应付面试,我们经常会背诵一下DP问题的源码,其实,只要理解了思想,掌握基本的模型,然后再来点写代码的套 ...

最新文章

  1. 爸爸我爱您(之十二)
  2. 深入理解js系列一作用域是什么
  3. pku 3252 Round Numbers 组合数学 找规律+排列组合
  4. a byte of python中文版_面试官问 Python 版 “垃圾回收”机制,我没答上来
  5. 【转】foreach for each for_each引发的探讨:c++世界中的循环语句
  6. Linux常用命令大全(三)
  7. iphone双卡双待机型_运营商确认苹果将通过软件更新来让iPhone 12支持双卡5G!
  8. 手机摇一摇功能音量大小跟系统音量一致
  9. Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”
  10. ARM9学习笔记之——SDRAM实验
  11. shell脚本合并文件内容
  12. 【统计学笔记】正态概率图与Q-Q图
  13. 1050Ti解决csgo打不开、电脑无缘无故蓝屏的终极方法
  14. senseTime,FaceU人脸识别技术
  15. QT 中“ std::cerr ”的使用方法
  16. 当年明月《明朝那些事儿》读书笔记
  17. CoreOS Fest 系列之第二篇: Systemd、Go、Calico、Sysdig
  18. 1. Matplotlib简介,画余弦和正弦函数图像
  19. 在网页插入朝鲜文字(九千多个朝鲜的文字)
  20. python能写桌面程序吗?

热门文章

  1. HTML+Javascript制作拼图小游戏详解(一)
  2. 【学步者日记】UnityEditor扩展菜单以及ScriptableObject
  3. Java 文件操作-RandomAccessFile
  4. 详解HTML5中rel属性的prefetch预加载功能使用
  5. html中hr的各种样式使用
  6. tyvj 1068 STR
  7. c++语言表白超炫图形_让C/C++程序员告诉你什么叫浪漫,表白黑科技,炫酷多彩求爱利器...
  8. python怎么设置颜色深浅变化_机器学习中减弱不同图像数据色调及颜色深浅差异...
  9. Python+sklearn训练结果保存与加载(以垃圾邮件分类为例)
  10. 使用Python批量提取并保存docx文档中的图片