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

  • 相关阅读:
    【BZOJ1901】Dynamic Rankings(树套树,树状数组,主席树)
    【Vijos1222】等值拉面(DP)
    【Vijos1534】高性能计算机(DP)
    【POJ3321】Apple Tree(DFS序,树状数组)
    主外键约束
    java访问权限
    java2实用教程102小程序(分数计算和流水线计算
    java对象初级知识
    java第一天的疑问
    时间
  • 原文地址:https://www.cnblogs.com/mozhuhao/p/4464914.html
Copyright © 2011-2022 走看看