1 public interface Graph<V> {
2
3 public int getSize();
4
5
6 public java.util.List<V> getVertices();
7
8
9 public V getVertex(int index);
10
11
12 public int getIndex(V v);
13
14
15 public java.util.List<Integer> getNeighbors(int index);
16
17
18 public int getDegree(int v);
19
20
21 public void printEdges();
22
23
24 public void clear();
25
26
27 public boolean addVertex(V vertex);
28
29
30 public boolean addEdge(int u, int v);
31
32
33 public boolean addEdge(Edge e);
34
35
36 public boolean remove(V v);
37
38
39 public boolean remove(int u, int v);
40
41
42 public UnweightedGraph<V>.SearchTree dfs(int v);
43
44
45 public UnweightedGraph<V>.SearchTree bfs(int v);
46 }