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

  • 相关阅读:
    centos7 部署kubernetes 1.20.1
    Pulse Width Modulation (PWM) interface
    imx6的IOMUX配置方法
    Linux下巧用转义符来完成多阶攻击
    记录一次半失败的php代码审计
    通过钉钉网页上的js学习xss打cookie
    PostMessage xss学习和挖掘
    解决Android微信支付官方demo运行失败
    Android集成银联支付,提示java.lang.UnsatisfieldLinkError错误
    解决 Plugin with id 'com.github.dcendents.android-maven' not found.
  • 原文地址:https://www.cnblogs.com/mozhuhao/p/4464914.html
Copyright © 2011-2022 走看看