首先,我们把/text下的文件及文件夹称作为v0级文件,以此同理,vo级文件夹下的子文件为v1级...v2
广度优先搜索
在广度优先搜索中,我们是这样遍历的:
先遍历v0的所有文件,存储v1的所有需要遍历的文件夹...,需要遍历全部数据,消耗更多的时间
广度优先搜索消耗更多的内存,消耗相对较少的时间,找出的是最优解,
算法实现
深度优先准备工作如下:
1:结果集数组,将匹配正确的结果集数组保存
2:递归函数,栈实现深度搜索...3:创建一个数组,用于记录已经遍历的文件夹(通用写法,当你的v2级文件夹,有一个是v0级的快捷方式的时候,需要判断一下是否已经遍历过了,如果有就不再遍历)
由于深度优先搜索的特性,需要通过一个全局的结果集数组保存结果值...,在栈里面判断该次搜索任务是否完成
算法需求拆分:
1:递归函数,foreach当前级别的文件数组的时候,继续调用该函数,去foreach下一个级别的文件数组,直到找到结果集数组或者遍历全部完成
2:获取子级数据...在调用一个文件夹的时候,去获取他的子级并且开始下一次循环
3:根据结果集判断搜索任务是否完成
4:判断任务数据 判断当前数据是否已经遍历过,是否跳过
php实现如下:
<?