zoukankan      html  css  js  c++  java
  • 图--广度优先遍历/深度优先遍历的一些理解

    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]);
                    }
                }
            }
        }
    }

  • 相关阅读:
    ant+jmeter 报告优化
    使用no-gui 模式执行分布式测试
    jmeter 4.0使用本机做slave
    jmeter 4.0,分布式测试
    jmeter 跨线程执行变量
    jmeter if 控制器
    jmeter 获取cookie
    jmeter 使用 P函数 自动控制ip和端口等变量
    linux 配置tomcat环境变量
    linux 配置jdk环境变量
  • 原文地址:https://www.cnblogs.com/mozhuhao/p/4464914.html
Copyright © 2011-2022 走看看