-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGraph.java
More file actions
70 lines (63 loc) · 1.99 KB
/
Graph.java
File metadata and controls
70 lines (63 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import java.util.HashMap;
import java.util.*;
public class Graph {
private HashMap<String,ArrayList<String>> adjlist=new HashMap<>();
public boolean addvertex(String vertex){
if(adjlist.get(vertex)==null){
adjlist.put(vertex,new ArrayList<String>());
return true;
}
return false;
}
public void printgraph(){
System.out.println(adjlist);
}
public boolean addedge(String vertex1,String vretex2){
if(adjlist.get(vertex1)!=null && adjlist.get(vretex2)!=null){
adjlist.get(vertex1).add(vretex2);
adjlist.get(vretex2).add(vertex1);
return true;
}
return false;
}
public boolean removeedge(String vertex1,String vertex2){
if(adjlist.get(vertex1)!=null && adjlist.get(vertex2)!=null){
adjlist.get(vertex1).remove(vertex2);
adjlist.get(vertex2).remove(vertex1);
return true;
}
return false;
}
public boolean removevertex(String vertex){
if(adjlist.get(vertex)==null)
return false;
for(String othervertex:adjlist.get(vertex)){
adjlist.get(othervertex).remove(vertex);
}
adjlist.remove(vertex);
return true;
}
public static void main(String args[]){
Graph mygraph=new Graph();
mygraph.addvertex("A");
mygraph.printgraph();
mygraph.addvertex("B");
mygraph.addedge("A", "B");
mygraph.printgraph();
mygraph.addvertex("C");
mygraph.addedge("B", "C");
mygraph.addedge("A", "C");
mygraph.printgraph();
mygraph.removeedge("A", "B");
mygraph.printgraph();
mygraph.addvertex("D");
mygraph.addedge("A", "B");
mygraph.addedge("A", "D");
mygraph.addedge("B", "D");
mygraph.addedge("C", "D");
mygraph.printgraph();
System.out.println("Graph after removing vertex D");
mygraph.removevertex("D");
mygraph.printgraph();
}
}