问题描述
根据给出的文件路径,遍历该路径下的所有文件夹和文件,并打印出文件名。
要求:
第一行打印在所给路径的下一级的所有文件
第二行打印再下一级的文件,依次类推
如硬盘目录如下:
d:/a.txt
d:/b.txt
d:/da/da.txt
d:/da/ce/ce.txt
d:/fg/fg.txt
则输出:
a.txt b.txt
[da] [fg]
da.txt ce.txt fg.txt
问题分析
1、这是一个典型的多叉树广度优先遍历问题,按照广度遍历二叉树的算法解决
2、由于要求每一级别目录或文件打印在不同的行,所以需要在对列增加一个挡板(标记)来区分遍历的是第几层目录
3、广度遍历二叉树算法如下:
(1)初始化一个队列,将根节点加入队列
(2)当队列非空时,重复执行步骤(3)到(5),否则执行(6)
(3)从队列取出一个节点,访问该节点
(4)若该节点左子树为空,则将左节点加入队列
(5)若该节点右子树为空,则将右节点加入队列
(6)结束
4、因为目录结构相当于多叉树,所以步骤(3)到(5)修改为遍历每个子节点
5、当第一节点遍历子节点时,向队列加入挡板标示,区分换行输出
分享到:
相关推荐
【Java——Spider】是一个关于使用Java编程语言实现网络爬虫(Spider)的示例程序,其主要目的是将一个网站的所有HTML文件抓取并保存到本地硬盘。网络爬虫是自动化浏览互联网并提取信息的一种工具,它能够遍历网页,...
1. 文件扫描器:这是杀毒软件的核心组件,负责遍历硬盘上的所有文件,并逐个进行检查。这个模块通常使用深度优先或广度优先的策略,根据文件扩展名、大小等信息来决定检查的优先级。 2. 特征码数据库:存储了各种...
在IT行业中,Google 云端硬盘(Google Drive)是一款广受欢迎的云存储服务,它允许用户在互联网上存储、同步和共享文件。而“google-drive-copy”项目则涉及到使用JavaScript编程语言来实现对Google 云端硬盘文件夹...
理解并熟练运用图遍历算法,如深度优先搜索(DFS)和广度优先搜索(BFS),可以有效提升查询效率。 3. **数据模型设计**:合理的设计图数据模型,减少冗余数据,降低数据复杂性,有利于提升查询性能。比如,避免...
**解析**: 先序遍历的顺序是根节点 -> 左子树 -> 右子树。按照这一规则,遍历得到的结果为 **ABDEFC**。因此,正确答案为 **A.ABDEFC**。 #### 4. 寄存器概念 **题目**: NOIP2011-4. 寄存器是()的重要组成部分。 ...
- **软链接(符号链接)**:类似于 Windows 下的快捷方式,它包含指向另一个文件或目录的路径。 #### C++与面向对象语言 **1. C语言基础问题** - **关于const的问题** - `const` 关键字用于声明常量或指定某个...
感谢我的同事和朋友张会昌,你在技术上的广度和深度总令我钦佩。另外,在第一版中帮助我的人,我要再次谢谢你们,因为没有第一版,也就没有第二版。 在所有人中我最应该感谢和最想感谢的,是我的妻子黄丹红,感谢你...
感谢我的同事和朋友张会昌,你在技术上的广度和深度总令我钦佩。另外,在第一版中帮助我的人,我要再次谢谢你们,因为没有第一版,也就没有第二版。 在所有人中我最应该感谢和最想感谢的,是我的妻子黄丹红,感谢你...