拓扑排序的思路很简单
找到入度最小的节点,然后将其连接的节点,入度都减1
package com.company.POJ;
import java.util.*;
public class Tuopu {
public static void main(String[] args) {
List<Integer> res=new ArrayList<Integer>();
Map<Integer,Integer> degreeMap=new HashMap<>();//保存每个点的度
List[] sonList=new ArrayList[7];//保存每个点的连接节点, 一共7个节点
for (int i = 0; i <sonList.length; i++) {
sonList[i]=new ArrayList();
degreeMap.put(i,0);
}
int[][] vectx=new int[][]{
{1,2},{1,4},{5,4},{5,1},{5,2},{2,3},{3,6},{2,6},{5,6}
};
for (int i = 0; i <vectx.length ; i++) {
int[] v=vectx[i];
int weight= degreeMap.containsKey(v[1]) ? degreeMap.get(v[1]):0;
weight++;
degreeMap.put(v[1],weight);//将到达节点的入度+1
sonList[v[0]].add(v[1]);//将到达节点加入到 开