package org.jzy3d.maths.graphs;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class DefaultGraph  implements IGraph{
	@Override
	public void addVertex(V vertex) {
		vertices.add(vertex);
	}
	
	@Override
	public V getVertex(int i){
		return vertices.get(i);
	}
	
	@Override
	public List getVertices(){
		return vertices;
	}

	/*********************************/
	
	@Override
	public void addEdge(E edge, V v1, V v2) {
		edges.add(edge);
		edgeStart.put(edge, v1);
		edgeStop.put(edge, v2);
	}
	
	@Override
	public List getEdges(){
		return edges;
	}
	
	@Override
	public V getEdgeStartVertex(E e) {
		return edgeStart.get(e);
	}

	@Override
	public V getEdgeStopVertex(E e) {
		return edgeStop.get(e);
	}

	/*********************************/
	
	@Override
	public V getRandomVertex(){
		int id = (int) (Math.random() * vertices.size());
		return getVertex( id );
	}

	/*********************************/

	protected List vertices = new ArrayList();
	protected List edges = new ArrayList();
	protected Map edgeStart = new HashMap();
	protected Map edgeStop = new HashMap();
	

}

 

Ads help maintain this website.