图的BFS DFS
public void bfs(String begin) {
Vertex beginVertex = vertexMap.get(begin);
if(beginVertex==null) return;
HashSet<Vertex> set = new HashSet<>();
Queue<Vertex> queue=new LinkedList();
queue.offer(beginVertex);
while(!queue.isEmpty()) {
Vertex vertex= queue.poll();
System.out.println(vertex.name);
set.add(vertex);
Edge edge=vertex.next;
while(edge!=null) {
if(set.contains(vertexMap.get(edge.name))) {
edge=edge.next;
continue;
}
queue.offer(vertexMap.get(edge.name));
edge=edge.next;
}
}
}
public void dfs(Vertex vertex,HashSet<Vertex> set) {
System.out.println(vertex.name);
set.add(vertex);
Edge edge=vertex.next;
while(edge!=null) {
if(set.contains(vertexMap.get(edge.name))) {
edge=edge.next;
continue;
}
dfs(vertexMap.get(edge.name),set);
edge=edge.next;
}
}
public void dfs(String name) {
Vertex beginVertex = vertexMap.get(name);
if(beginVertex==null) return;
dfs(beginVertex, new HashSet<Vertex>());
}