//项目之间相互依赖问题
public class Main {
static int[][] data = new int[][]{{0},{3,2,3,0}, {3,3,0,1}, {1,0}};
static List<Integer> list = new ArrayList<>();
static boolean Flag=true;
static int index=0;
static target=2;
public static void main(String[] args) {
if(method(target)) list.add(target);
System.out.println("list="+list);
System.out.println(judge(target, list));
}
//递归方法
public static boolean method(int size) {
//截止条件
index++;
if(index>data.length*data.length) return false;
System.out.println("size="+size);
if (data[size][0] == 0 || judge(size,list)) {
System.out.println("list="+list);
return true;
}
//一般情况
int num = 0;
while (num < data[size][0]) {
Flag=Flag && method(data[size][num+1]);
if(!Flag) return false;
if(Flag && !judge(data[size][num+1],list)) list.add(data[size][num+1]);
num++;
}
return true;
}
//方法:判断某个数是否在一个集合中
public static boolean judge(int x,List<Integer> list){
for(int a:list){
if(x==a) return true;
}
return false;
}
}
因篇幅问题不能全部显示,请点此查看更多更全内容