如何从.txt文件创建Java图形文件 [英] How To Create A Java Graph File from .txt file
问题描述
我试图创建一个图形文件,我必须从.gra文件(我认为它是一个.txt文件)读取值。我们被告知以<格式 我看了一些相关的问题,但仍无法找到答案。 下面是我给出的代码: 任何提示? 好的方法可能是创建一个新的顶点,名称和坐标的类。然后将扫描仪中的数据读入 ArrayList
public EdgeListVertex(V元素){
this.element = element;
}
@Override
public V element(){
return element;
public String toString(){
return element.toString();
}
}
private class EdgeListEdge实现Edge< E> {
位置< EdgeListEdge>位置;
E元素;
EdgeListVertex开始,结束;
public EdgeListEdge(EdgeListVertex start,EdgeListVertex end,E element){
this.start = start;
this.end = end;
this.element = element;
}
@Override
public E element(){
return element;
public String toString(){
return element.toString();
}
}
private List< EdgeListVertex>顶点;
私人列表< EdgeListEdge>边缘;
$ b public EdgeListGraph(){
vertices = new LinkedList< EdgeListVertex>();
edges = new LinkedList< EdgeListEdge>();
}
@SuppressWarnings(unchecked)
@Override
public Vertex< V> [] endVertices(Edge< E> e){
EdgeListEdge edge =(EdgeListEdge)e;
Vertex [V] [] endpoints =(Vertex V []] new Vertex [2];
endpoints [0] = edge.start;
endpoints [1] = edge.end;
返回终点;
}
@覆盖
公共顶点< V>相反(Vertex V V,Edge E){
Vertex V []] endpoints = endVertices(e);
if(endpoints [0] .equals(v)){
return endpoints [1];
} else if(endpoints [1] .equals(v)){
return endpoints [0];
}
抛出新的InvalidVertexException(); (EdgeListEdge edge:edges){
$ b @Override
public boolean areAdjacent(Vertex V v,Vertex V w){
((edge.start.equals(v))&&(edge.end.equals(w)))返回true; ((edge.end.equals(v))&&(edge.start.equals(w)))返回true;
if
}
返回false;
}
@Override
public V replace(Vertex V v,V x){
EdgeListVertex vertex =(EdgeListVertex)v;
V temp = vertex.element;
vertex.element = x;
return temp;
}
@Override
public E替换(Edge E,e x){
EdgeListEdge edge =(EdgeListEdge)e;
E temp = edge.element;
edge.element = x;
return temp;
}
@覆盖
公共顶点< V> insertVertex(V v){
EdgeListVertex vertex = new EdgeListVertex(v);
位置< EdgeListVertex> position = vertices.insertLast(vertex);
vertex.position = position;
返回顶点;
}
@Override
public Edge< E> (EdgeListVertex)v,(EdgeListVertex)w,o);其中,EdgeEdgeEdge(Vertex V,v Vertex V w,E o)
位置< EdgeListEdge> position = edges.insertLast(edge);
edge.position = position;
返回边缘;
}
@Override
public V removeVertex(Vertex V){
Iterator< Edge< E>> it = incidentEdges(v).iterator();
while(it.hasNext())it.remove();
EdgeListVertex vertex =(EdgeListVertex)v;
vertices.remove(vertex.position);
返回vertex.element;
}
@Override
public E removeEdge(Edge< E> e){
EdgeListEdge edge =(EdgeListEdge)e;
edges.remove(edge.position);
返回edge.element;
}
@Override
public List< Edge< E>> incidentEdges(Vertex V){
LinkedList< Edge< E>> list = new LinkedList< Edge< E>>(); (EdgeListEdge edge:edges){
if(edge.start.equals(v))list.insertLast(edge);
if(edge.end.equals(v))list.insertLast(edge);
}
返回列表;
}
@Override
public List< Vertex< V>>顶点(){
LinkedList< Vertex< V>> list = new LinkedList< Vertex< V>>();
for(EdgeListVertex vertex:vertices){
list.insertLast(vertex);
}
返回列表;
}
@Override
public List< Edge< E>>边(){
LinkedList< Edge< E>> list = new LinkedList< Edge< E>>();
(EdgeListEdge edge:edges){
list.insertLast(edge);
}
返回列表;
}
}