我正在尝试顶点到2个arraylist(setA,setB),我将在其中存储顶点。稍后我将使用BFS比较它们并找到Maximam尺寸(二分图)但我仍然坚持获得输入。
这是我到目前为止所拥有的
import java.util.*;
public class BipartiteGraph {
private String strName;
ArrayList<Vertex>[] vertexList;
public BipartiteGraph(){
vertexList = new ArrayList[2];
vertexList[0] = new ArrayList<Vertex>();
vertexList[1] = new ArrayList<Vertex>();
}
public boolean setA(Vertex v1){
vertexList[0].add(v1);
return false;
}
public boolean setB(Vertex v2){
vertexList[1].add(v2);
return false;
}
}
class Vertex{
public String name;
public List adj;
public Vertex next;
public Vertex(String nm){
name = nm;
adj = new LinkedList();
}
}
class Edge{
public Vertex vertA;
public Vertex vertB;
public Edge( Vertex destination, Vertex comesfrom ){
vertA = comesfrom;
vertB = destination;
}
public static void main(String[] args){
Scanner vertexInput = new Scanner(System.in);
BipartiteGraph g = new BipartiteGraph( );
g.setA(vertexInput.nextBoolean()); <-- I get the error here and to resolve it I tried new Vertex(.....) but that did not work as well
}
}
如何正确输入输入以便我可以延迟执行BFS搜索。我还需要使用邻接列表。我可以在以后的当前代码中使用它吗?
答案 0 :(得分:0)
g.setA(vertexInput.nextBoolean());
您尝试使用boolean
类型的参数调用方法setA(Vertex v1),因为Scanner.nextBoolean()
返回布尔值(顾名思义)。
即使您尝试将此方法称为
g.setA(new Vertex(String));
然后你仍然不能使用nextBoolean(),因为Vertex构造函数只接受String参数。尝试使用g.setA(new Vertex(vertexInput.nextLine()));