从.data文件中读取图形

时间:2013-05-07 12:04:17

标签: java graph

有人可以澄清这部分代码如何将数据输入图表中。 什么样的文件是.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; 
} 

干杯 工作

1 个答案:

答案 0 :(得分:0)

该文件很可能只是一个普通的旧文本文件。 .data扩展名没有特别含义。

如果您正在运行Windows,请在任何文本编辑器(如记事本或写字板)中打开它。它应该是非常易读的。

据我所知:

该文件由一堆整数组成,由0~9范围内的任何内容分隔开(这是\\D+的意思,它是正则表达式,有关详细信息,请参阅this ),可能是空白。

第一个条目是节点数。紧随所有节点。

对于每个节点,都有一个节点索引,后跟其度,后跟连接顶点的索引(count = degree)。

有关如何构建图表的更多详细信息,我们需要有关GraphNode看起来的更多详细信息,但是一旦您阅读了一本不错的Java书籍或在Java中学习了一个不错的编程课程,它应该是很清楚。