日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【图】图的一般表示法以及其他表示法转化为一般表示法

發布時間:2024/3/13 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【图】图的一般表示法以及其他表示法转化为一般表示法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在前面

我們知道,圖的表示法有很多,但是用多種方法來實現我們的算法,那就變的困難了,所以我們遇到圖的時候就要想到轉化為一般表示法,如果題目給的是別的表示方法,那么我們就進行轉換,將題目給的圖轉化為我們的一般圖表示法。


圖的一般表示法

// 點結構的描述 public class Node {public int value;//表示值public int in;//入度:有多少個邊指向此處public int out;//出度:有多少指出去的邊public ArrayList<Node> nexts;//直接鄰居,指向下一個的點集合public ArrayList<Edge> edges;//邊,從我出發的邊的集合//out=next.size()public Node(int value) {this.value = value;in = 0;out = 0;nexts = new ArrayList<>();edges = new ArrayList<>();} } //邊結構的描述 public class Edge {public int weight;//邊的權重public Node from;//邊的入點public Node to;//邊的出點public Edge(int weight, Node from, Node to) {this.weight = weight;this.from = from;this.to = to;} }//圖的結構 public class Graph {public HashMap<Integer, Node> nodes;//k表示編號id,Node就是實際的點public HashSet<Edge> edges;public Graph() {nodes = new HashMap<>();edges = new HashSet<>();} }

轉化

例一

題目所給的圖的結構是這樣描述的

  • 用二維數組來表示圖,共三個列,第一列表示邊權,第二列表示入點id,第三列表示出點id。
  • [ 邊權 ,from ,to ] 三個都是int型的
// matrix 所有的邊 // N*3 的矩陣 // [weight, from節點上面的值,to節點上面的值] // // [ 5 , 0 , 7] // [ 3 , 0, 1] // public static Graph createGraph(int[][] matrix) {Graph graph = new Graph();for (int i = 0; i < matrix.length; i++) {// 拿到每一條邊, matrix[i] int weight = matrix[i][0];int from = matrix[i][1];int to = matrix[i][2];//給圖加點if (!graph.nodes.containsKey(from)) {graph.nodes.put(from, new Node(from));}if (!graph.nodes.containsKey(to)) {graph.nodes.put(to, new Node(to));}//建立邊Node fromNode = graph.nodes.get(from);Node toNode = graph.nodes.get(to);Edge newEdge = new Edge(weight, fromNode, toNode);//添加fromNode的直接鄰居fromNode.nexts.add(toNode);fromNode.out++;//fromNode的出度++toNode.in++; //toNode的入度++fromNode.edges.add(newEdge);//以fromNode開始的邊//給圖加邊graph.edges.add(newEdge);}return graph; }

鄰接矩陣轉換法

總結

以上是生活随笔為你收集整理的【图】图的一般表示法以及其他表示法转化为一般表示法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。