package org.fnlp.app.keyword;
import java.util.ArrayList;
public class Graph {
private ArrayList<Vertex> vertexList = new ArrayList<Vertex>();
private int nVerts = 0;
public ArrayList<Vertex> getVertexList(){
return vertexList;
}
public int getNVerts(){
return nVerts;
}
public Vertex getVertex(int index){
return vertexList.get(index);
}
public int getIndex(String id){
int index;
for(index = 0; index < nVerts; index++)
if(vertexList.get(index).getId() == id)
break;
if(index == nVerts)
index = -1;
return index;
}
public void addVertex(Vertex vertex){
vertex.setIndex(nVerts);
vertexList.add(vertex);
nVerts++;
}
public void addEdge(int start, int end){
Vertex vertex1 = vertexList.get(start);
Vertex vertex2 = vertexList.get(end);
if(vertex1.getNext() != null){
int index = vertex1.getNext().indexOf(vertex2);
if(index != -1){
vertex1.setWNext(index, 1);
}
else
vertex1.addVer(vertex2);
}
else
vertexList.get(start).addVer(vertexList.get(end));
vertexList.get(end).addForwardCount(1);
}
}