国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

LintCode 127-拓撲排序

2019-11-14 12:36:42
字體:
來源:轉載
供稿:網友

本人電子系,只為一學生。心喜計算機,小編以怡情。


思路: 1、用字典存儲每個節點的入度 2、用隊列存儲入度為零的節點 3、BFS

static public ArrayList<DirectedGraphNode> topSort(ArrayList<DirectedGraphNode> graph) { // write your code here //返回的值 ArrayList<DirectedGraphNode> ret=new ArrayList<>(); //隊列 Queue<DirectedGraphNode> que=new LinkedList<>(); //字典 HashMap<DirectedGraphNode, Integer> dict=new HashMap<>(); //入度的計算 for(DirectedGraphNode k : graph) { if(!dict.containsKey(k)) { dict.put(k, 0); for(DirectedGraphNode m:k.neighbors) { if(!dict.containsKey(m)) dict.put(m, 1); else { dict.put(m, dict.get(m)+1); } } } else { for(DirectedGraphNode m:k.neighbors) { if(!dict.containsKey(m)) dict.put(m, 1); else { dict.put(m, dict.get(m)+1); } } } } //將所有最開始入度就為零的節點放到隊列里 for(DirectedGraphNode n:dict.keySet()) { if(dict.get(n).equals(0)) { que.add(n); } } //進行主要的循環部分,實現輸出 while(!que.isEmpty()) { DirectedGraphNode temp=que.poll();//將隊列取出一個 ret.add(temp);//輸出:放到ret返回值里 //將輸出節點的下一個節點入度減一 for(DirectedGraphNode m : temp.neighbors) { dict.put(m,dict.get(m)-1); if(dict.get(m)==0)//如果減一后入度為0 que.add(m);//就放到隊列中 } } //最終返回 return ret; }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 板桥市| 宿州市| 德保县| 德清县| 临沭县| 岑巩县| 乌恰县| 金乡县| 宁国市| 清远市| 绍兴市| 灵丘县| 永宁县| 麻阳| 龙里县| 游戏| 公主岭市| 沛县| 日土县| 平阴县| 当涂县| 日喀则市| 十堰市| 张家口市| 河东区| 灵璧县| 五华县| 时尚| 资溪县| 天等县| 陵川县| 平山县| 连南| 岳池县| 呼伦贝尔市| 买车| 新建县| 海丰县| 炉霍县| 寻乌县| 黔江区|