2013-05-07 37 views
-1

有人可以澄清這部分代碼如何將數據輸入到圖表上。 .data是什麼類型的文件?從.data文件讀取圖形

public class DepthFirst { 
static int numNodes; 
static GraphNode nodes[]; 

    ........... 
    ........... 



public static void readGraph() throws IOException { 
    File input = new File("digraph.data"); 
    Scanner digraph = new Scanner(input).useDelimiter("\\D+"); 

      //if file is not empty 
    if (digraph.hasNext()) { 
     int nodeNum; 
     numNodes = digraph.nextInt(); //System.out.println(numNodes); 
     nodes = new GraphNode[numNodes]; 
     while (digraph.hasNext()) { 
      nodeNum = digraph.nextInt(); 
      nodes[nodeNum] = new GraphNode(nodeNum, digraph.nextInt()); 
      for (int i = 0; i < nodes[nodeNum].getDegree(); i++) 
       nodes[nodeNum].setAdjListIndex(digraph.nextInt(), i); 
     } 
    } 
    else return; 
} 

乾杯 工作

回答

0

該文件是在所有的可能性只是一個普通的舊文本文件。 .data擴展沒有特別的意義。

如果您正在運行Windows,請在任何文本編輯器(如記事本或寫字板)中打開它。它應該是非常可讀的。

從我可以告訴:

文件由一串整數,通過良好分離,任何不是在範圍0-9(這是什麼\\D+手段,這是一個正則表達式,見this更多),可能是空白。

第一個條目是節點的數量。隨後是所有節點。

對於每個節點,都有一個節點索引,後面跟着它的度數,後面跟着連接頂點的索引(count = degree)。

有關圖表到底如何構造更多的細節,我們需要什麼GraphNode貌似更多的細節,但是一旦你讀一個體面的Java書籍,或採取在Java編程體面當然,它應該很清楚。