• 图--广度优先遍历/深度优先遍历的一些理解


    package cn.it;

    import java.io.File;
    import java.util.LinkedList;
    import java.util.Queue;

    public class FileUtil {
        public static void main(String[] args) {
            File root = new File("/usr/local/soft_pack/book");
            showFile_ByDFS(root);
            
            System.out.println("================================ ");
            
            root = new File("/usr/local/soft_pack/book_book");
            Queue<File> queue = new LinkedList<File>();
            queue.offer(root);
            showFile_ByBFS(root, queue);
        }

        // 深度优先遍历(DFS)  --利用递归实现(打破砂锅问到底)
        public static void showFile_ByDFS(File root) {
            if (root.isFile()) {
                System.out.println(root.getName());
                return;
            }
            if (root.isDirectory()) {
                System.out.println(root.getName());
                File[] files = root.listFiles();
                for (int i = 0; i < files.length; i++) {
                    showFile_ByDFS(files[i]);
                }
            }
        }

        // 广度优先遍历(BFS)  -- 利用队列实现(先进先出FIFO)
        public static void showFile_ByBFS(File root, Queue<File> fileQueue) {
            while (!fileQueue.isEmpty()) {
                File fileroot = fileQueue.poll();
                System.out.println(fileroot.getName());
                
                if (fileroot.isDirectory()) {
                    File[] files = fileroot.listFiles();
                    for (int i = 0; i < files.length; i++) {
                        fileQueue.offer(files[i]);
                    }
                }
            }
        }
    }

  • 相关阅读:
    js 创建函数,传递三个参数,返回最大值
    JS 实现 计算1~任意数字之间的所有整数阶乘的和
    npm install
    如何在浏览器上安装 VueDevtools工具
    前端日历插件
    css隐藏元素的几种方法
    less和sass的区别
    vue.js 自定义事件
    vue简单的导航栏
    用jetty启动idea中的maven项目报错Caused by: java.lang.ClassNotFoundException: org.apache.jasper.runtime.JspApplicationContextImpl
  • 原文地址:https://www.cnblogs.com/mozhuhao/p/4464914.html
Copyright © 2020-2023  润新知