`

广度遍历树——遍历硬盘目录及文件

阅读更多

问题描述

根据给出的文件路径,遍历该路径下的所有文件夹和文件,并打印出文件名。

 

要求:

第一行打印在所给路径的下一级的所有文件

第二行打印再下一级的文件,依次类推

 

如硬盘目录如下:

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】是一个关于使用Java编程语言实现网络爬虫(Spider)的示例程序,其主要目的是将一个网站的所有HTML文件抓取并保存到本地硬盘。网络爬虫是自动化浏览互联网并提取信息的一种工具,它能够遍历网页,...

    简易杀软源码。

    1. 文件扫描器:这是杀毒软件的核心组件,负责遍历硬盘上的所有文件,并逐个进行检查。这个模块通常使用深度优先或广度优先的策略,根据文件扩展名、大小等信息来决定检查的优先级。 2. 特征码数据库:存储了各种...

    google-drive-copy:Google 云端硬盘文件夹副本

    在IT行业中,Google 云端硬盘(Google Drive)是一款广受欢迎的云存储服务,它允许用户在互联网上存储、同步和共享文件。而“google-drive-copy”项目则涉及到使用JavaScript编程语言来实现对Google 云端硬盘文件夹...

    大数据存储及分层实践-7-4 EasyGraph 图数据库查询性能优化以及在腾讯内部业务中的应用.zip

    理解并熟练运用图遍历算法,如深度优先搜索(DFS)和广度优先搜索(BFS),可以有效提升查询效率。 3. **数据模型设计**:合理的设计图数据模型,减少冗余数据,降低数据复杂性,有利于提升查询性能。比如,避免...

    NOIP提高组初赛历年试题及答案选择题篇CSP竞赛比赛CSP考级.pdf

    **解析**: 先序遍历的顺序是根节点 -> 左子树 -> 右子树。按照这一规则,遍历得到的结果为 **ABDEFC**。因此,正确答案为 **A.ABDEFC**。 #### 4. 寄存器概念 **题目**: NOIP2011-4. 寄存器是()的重要组成部分。 ...

    计算机基础精华

    - **软链接(符号链接)**:类似于 Windows 下的快捷方式,它包含指向另一个文件或目录的路径。 #### C++与面向对象语言 **1. C语言基础问题** - **关于const的问题** - `const` 关键字用于声明常量或指定某个...

    自己动手写操作系统(含源代码).part2

    感谢我的同事和朋友张会昌,你在技术上的广度和深度总令我钦佩。另外,在第一版中帮助我的人,我要再次谢谢你们,因为没有第一版,也就没有第二版。 在所有人中我最应该感谢和最想感谢的,是我的妻子黄丹红,感谢你...

    自己动手写操作系统(含源代码).part1

    感谢我的同事和朋友张会昌,你在技术上的广度和深度总令我钦佩。另外,在第一版中帮助我的人,我要再次谢谢你们,因为没有第一版,也就没有第二版。 在所有人中我最应该感谢和最想感谢的,是我的妻子黄丹红,感谢你...

Global site tag (gtag.js) - Google Analytics