无法获取代码来编译

时间:2016-10-24 19:41:12

标签: java vector nodes prims-algorithm

我正在尝试学习Prim的算法,而我正在使用this website这样做,但我无法使代码部分运行。我对class node implements Comparable<node> { int weight, index; public node(int weight, int index) { this.weight = weight; this.index = index; } public int compareTo(node e) { return weight - e.weight; } }public static int Prims(Vector<Vector<node>> adjList) { // Current cost of MST. int cost = 0; int n = adjList.size(); PriorityQueue<node> pq = new PriorityQueue<node>(); // Keep track if each node is visited. boolean visited[] = new boolean[n]; for (int i = 0; i < n; i++) { visited[i] = false; } // Number of nodes visited. int inTree = 1; // Mark starting node as visited. visited[0] = true; // Add all edges of starting node. for (int i = 0; i < adjList.get(0).size(); i++) { pq.add(adjList.get(0).get(i)); } // Keep going until all nodes visited. while (!pq.isEmpty() && inTree < n) { // Get the edge with the smallest weight. node cur = pq.poll(); // Skip if node already used. if (visited[cur.index]) { continue; } inTree++; visited[cur.index] = true; cost += cur.weight; // Add all the edges of the new node to the priority queue. for (int i = 0; i < adjList.get(cur.index).size(); i++) { pq.add(adjList.get(cur.index).get(i)); } } // Graph not connected if number of nodes used is less than total nodes. if (inTree < n) { return -1; } return cost; } 中的内容以及如何编译和运行代码感到困惑。 (对java来说是新的,如果这是一个愚蠢的问题,请原谅我。)

编辑:这是我正在尝试运行的代码:

{{1}}

2 个答案:

答案 0 :(得分:0)

您的方法public static int Prims(Vector<Vector<node>> adjList)似乎不是一个类的成员。它需要。行上的前导}

}public static int Prims(Vector<Vector<node>> adjList) {

应该可能移动到文件的末尾。

答案 1 :(得分:-1)

如果您不使用IDE编译和运行代码,则需要发出以下命令:

javac MyCode.java
java MyCode

我认为您的代码位于名为MyCode.java的文件中,并且没有定义包。