Java中图的创建与从任一节点开始递归遍历

    xiaoxiao2021-03-25  86

    package HuaWei; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; public  class GraTree<T> {     int length;     public Map<Integer,List<Integer>> MyTree =  new HashMap<>(length);     public void  DFS(int i,int d)     {         if(MyTree.get(i).size()==0&&d<=3)         {             System.out.println("深度3以内的节点有:"+i);             return;         }         //System.out.println(MyTree.get(6).size()==0);         List<Integer> ChildList = MyTree.get(i);         int length = ChildList.size();         d++;         for(int l =0;l<length;l++)         {             System.out.println("当前节点:"+i+" 深度:"+d+"   "+ ChildList+"即将遍历节点"+ChildList.get(l));             DFS(ChildList.get(l),d);         }     }     public GraTree(int n)     {         this.length  = n;     }     public static void main(String[] args)     {         GraTree t = new GraTree(9);                 Integer[] a1 = {2};                     t.MyTree.put(1,Arrays.asList(a1));         Integer[] a2 = {3,6};         t.MyTree.put(2,Arrays.asList(a2));             Integer[] a3 = {4};         t.MyTree.put(3,Arrays.asList(a3));         Integer[] a4 = {5};         t.MyTree.put(4,Arrays.asList(a4));         Integer[] a5 = {6};         t.MyTree.put(5,Arrays.asList(a5));         Integer[] a6 = {};         t.MyTree.put(6,Arrays.asList(a6));                  t.DFS(4, 0);                  } }
    转载请注明原文地址: https://ju.6miu.com/read-25150.html

    最新回复(0)