I made a program that receives a (int) number of courses as well as their (arr) prerequisites and puts the correct order they should be taken. However, whenever I try to run this code, this error message appears: Error: Could not find or load main class assignment5.Assignment5. I cannot figure out how to fix it and would really appreciate some assistance in doing so. Thanks in advance
package Assignment5;
import java.util.*;
/**
*
* @author anon
*/
public class findOrder {
private Stack<Vertex> vertexStack;
public findOrder() {
vertexStack = new Stack<>();
}
public static void main(String args[]) {
int[][] arr = {{1, 0}, {2, 0}, {3, 1}, {3, 2}}; //already sent the code last night during the due date, but changed it slightly so it works a little better
int rows1 = arr.length;
int[][] brr = {{1, 0}};
int rows2 = brr.length;
int[][] crr = {{1, 0}, {2, 1}, {3, 2}, {4, 3}, {5, 4}};
int rows3 = crr.length;
int[][] drr = {{1, 0}, {2, 0}, {3, 1}, {2, 1}, {4, 3}, {5, 3}, {6, 4}, {6, 5}};
int rows4 = drr.length;
findOrder dfs1 = new findOrder();
System.out.println(Arrays.toString(dfs1.findOrder(4, arr)));
findOrder dfs2 = new findOrder();
System.out.println(Arrays.toString(dfs2.findOrder(2, brr)));
findOrder dfs3 = new findOrder();
System.out.println(Arrays.toString(dfs3.findOrder(6, crr)));
findOrder dfs4 = new findOrder();
System.out.println(Arrays.toString(dfs4.findOrder(7, drr)));
}
private class Vertex {
int number;
boolean visited;
List<Vertex> neighbours;
public Vertex(int number) {
this.number = number;
this.neighbours = new ArrayList<>();
}
public int getNumber() {
return number;
}
public void setVisited(boolean visited) {
this.visited = visited;
}
public void addneighbours(Vertex neighbourVertex) {
this.neighbours.add(neighbourVertex);
}
public List<Vertex> getNeighbours() {
return neighbours;
}
public void setNeighbours(List<Vertex> neighbours) {
this.neighbours = neighbours;
}
}
public void toplogicalSort(Vertex vertex) {
List<Vertex> neighbours = vertex.getNeighbours();
for (int i = 0; i < neighbours.size(); i++) {
Vertex vertexToGo = neighbours.get(i);
if (vertexToGo != null && !vertexToGo.visited) {
toplogicalSort(vertexToGo);
vertexToGo.setVisited(true);
}
}
vertexStack.push(vertex);
}
public int[] findOrder(int numCourses, int[][] prerequisites) {
int[][] adjacentyMatrix = new int[numCourses][numCourses];
Vertex[] list = new Vertex[numCourses];
for (int i = 0; i < numCourses; i++) {
list[i] = new Vertex(i);
}
for (int i = 0; i < prerequisites.length; i++) {
list[prerequisites[i][1]].addneighbours(list[prerequisites[i][0]]);
}
toplogicalSort(list[0]);
int[] answer = new int[numCourses];
int j = 0;
for (int i = answer.length - 1; i >= 0; i--) {
answer[j++] = vertexStack.get(i).getNumber();
}
return answer;
}
}