有人可以澄清这部分代码如何将数据输入图表中。 什么样的文件是.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 :(得分:0)
该文件很可能只是一个普通的旧文本文件。 .data
扩展名没有特别含义。
如果您正在运行Windows,请在任何文本编辑器(如记事本或写字板)中打开它。它应该是非常易读的。
据我所知:
该文件由一堆整数组成,由0~9范围内的任何内容分隔开(这是\\D+
的意思,它是正则表达式,有关详细信息,请参阅this ),可能是空白。
第一个条目是节点数。紧随所有节点。
对于每个节点,都有一个节点索引,后跟其度,后跟连接顶点的索引(count = degree)。
有关如何构建图表的更多详细信息,我们需要有关GraphNode
看起来的更多详细信息,但是一旦您阅读了一本不错的Java书籍或在Java中学习了一个不错的编程课程,它应该是很清楚。