Skip to content

Commit bb47a7e

Browse files
Add files via upload
1 parent f97224e commit bb47a7e

File tree

2 files changed

+171
-0
lines changed

2 files changed

+171
-0
lines changed

Graph/Graph.java

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package com.company;
2+
3+
import java.util.ArrayList;
4+
import java.util.Iterator;
5+
import java.util.LinkedList;
6+
import java.util.Queue;
7+
8+
public class Graph {
9+
ArrayList<ArrayList<Integer>> adj;
10+
int vertices=0;
11+
public Graph(int n){
12+
this.vertices=n;
13+
adj=new ArrayList<ArrayList<Integer>>(n);
14+
for(int i=0;i<n;i++){
15+
adj.add(new ArrayList<Integer>());
16+
}
17+
}
18+
public void addEdge(int u,int v){
19+
addEdgefn(adj,u,v);
20+
}
21+
private void addEdgefn(ArrayList<ArrayList<Integer>> adj,int u,int v){
22+
adj.get(u).add(v);
23+
adj.get(v).add(u);
24+
}
25+
public void printGraph(){
26+
for(int i=0;i<adj.size();i++){
27+
System.out.print(i+"|");
28+
for(int j=0;j<adj.get(i).size();j++){
29+
System.out.print(" -> "+ adj.get(i).get(j));
30+
}
31+
System.out.println();
32+
}
33+
}
34+
public boolean isConnected(int u,int v){
35+
for(int i=0;i<adj.get(u).size();i++){
36+
if(adj.get(u).get(i)==v){
37+
return true;
38+
}
39+
}
40+
return false;
41+
}
42+
public void dfs(){
43+
boolean[] visited=new boolean[vertices];
44+
System.out.println("DFS ");
45+
for(int i=0;i<vertices;i++){
46+
if(!visited[i])
47+
dfsfn(i,visited);
48+
}
49+
System.out.println();
50+
}
51+
private void dfsfn(int n,boolean[] visited){
52+
visited[n]=true;
53+
System.out.print(n+" ");
54+
for(int i=0;i<adj.get(n).size();i++){
55+
int j=adj.get(n).get(i);
56+
if(!visited[j])
57+
dfsfn(j,visited);
58+
}
59+
}
60+
public void bfs(){
61+
System.out.println("BFS ");
62+
boolean[] visited=new boolean[vertices];
63+
for(int i=0;i<vertices;i++){
64+
if(!visited[i]){
65+
bfsfn(i,visited);
66+
}
67+
}
68+
System.out.println();
69+
}
70+
private void bfsfn(int n,boolean[] visited){
71+
Queue<Integer> q=new LinkedList<>();
72+
visited[n]=true;
73+
q.add(n);
74+
while(!q.isEmpty()){
75+
int data = q.poll();
76+
System.out.print(data+" ");
77+
for(int i=0;i<adj.get(n).size();i++){
78+
int s=adj.get(n).get(i);
79+
if(!visited[s]) {
80+
visited[s]=true;
81+
q.add(s);
82+
}
83+
}
84+
}
85+
}
86+
}

Graph/GraphLL.java

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package com.company;
2+
3+
import java.util.*;
4+
5+
public class GraphLL {
6+
LinkedList<Integer>[] adj;
7+
int vertices=0;
8+
public GraphLL(int n){
9+
this.vertices=n;
10+
adj=new LinkedList[n];
11+
for(int i=0;i<n;i++){
12+
adj[i]=new LinkedList<Integer>();
13+
}
14+
}
15+
public void addEdge(int u,int v){
16+
addEdgefn(adj,u,v);
17+
}
18+
private void addEdgefn(LinkedList<Integer>[] adj,int u,int v){
19+
adj[u].add(v);
20+
adj[v].add(u);
21+
}
22+
public void printGraph(){
23+
for(int i=0;i<vertices;i++){
24+
System.out.print(i+"|");
25+
for(int j=0;j<adj[i].size();j++){
26+
System.out.print(" -> "+ adj[i].get(j));
27+
}
28+
System.out.println();
29+
}
30+
}
31+
public boolean isConnected(int u,int v){
32+
for(int i=0;i<adj[i].size();i++){
33+
if(adj[u].get(i)==v){
34+
return true;
35+
}
36+
}
37+
return false;
38+
}
39+
public void dfs(){
40+
boolean[] visited=new boolean[vertices];
41+
System.out.println("DFS ");
42+
for(int i=0;i<vertices;i++){
43+
if(!visited[i])
44+
dfsfn(i,visited);
45+
}
46+
System.out.println();
47+
}
48+
private void dfsfn(int n,boolean[] visited){
49+
visited[n]=true;
50+
System.out.print(n+" ");
51+
Iterator<Integer> i=adj[n].listIterator();
52+
while(i.hasNext()){
53+
int s=i.next();
54+
if(!visited[s])
55+
dfsfn(s,visited);
56+
}
57+
}
58+
public void bfs(){
59+
System.out.println("BFS ");
60+
boolean[] visited=new boolean[vertices];
61+
for(int i=0;i<vertices;i++){
62+
if(!visited[i]){
63+
bfsfn(i,visited);
64+
}
65+
}
66+
System.out.println();
67+
}
68+
private void bfsfn(int n,boolean[] visited){
69+
Queue<Integer> q=new LinkedList<>();
70+
visited[n]=true;
71+
q.add(n);
72+
while(!q.isEmpty()){
73+
int data = q.poll();
74+
System.out.print(data+" ");
75+
Iterator<Integer> i =adj[data].listIterator();
76+
while(i.hasNext()){
77+
int s=i.next();
78+
while(!visited[s]){
79+
q.add(s);
80+
visited[s]=true;
81+
}
82+
}
83+
}
84+
}
85+
}

0 commit comments

Comments
 (0)