package ds.graph;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
/**
* Created by sherxon on 1/7/17.
*/
public class WeightedGraph {
Set<Edge> edges = new HashSet<>();
private boolean Undirected = false;
private Map<Integer, Set<Edge>> map = new HashMap<>();
public WeightedGraph(boolean Undirected) {
this.Undirected = Undirected;
}
public void addVertex(Integer v) {
map.put(v, new HashSet<>());
}
public void addEdge(Integer v1, Integer v2, Double weight) {
if(!map.containsKey(v1))return;
if(!map.containsKey(v2))return;
Edge edge = new Edge(v1, v2, weight);
map.get(v1).add(edge);
edges.add(edge);
if(Undirected) {
Edge edge2 = new Edge(v2, v1, weight);
map.get(v2).add(edge2);
edges.add(edge2);
}
}
public void removeVertex(Integer v) {
}
public Set<Integer> getVertices() {
return new HashSet<>(map.keySet());
}
public Set<Edge> getEdges() {
return edges;
}
public Set<Edge> getEdges(Integer ver) {
return map.get(ver);
}
public int size() {
return map.size();
}
}