Skip to content

Commit e30a1ca

Browse files
author
burakfirik
committed
added List<Node> getGraphNode() method and also implemented conversion from Table to Graph with Nodes
1 parent 835c818 commit e30a1ca

File tree

2 files changed

+53
-19
lines changed

2 files changed

+53
-19
lines changed

java/Graph.java

Lines changed: 50 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,71 @@
11
package pipelinescript.java;
22

33
import java.util.ArrayList;
4+
import java.util.HashMap;
45
import java.util.List;
5-
6-
public class Graph {
7-
6+
import java.util.Map;
7+
// node1, node2, weight
8+
public class Graph extends Table {
9+
Table graph;
810
private List<Node> nodes;
9-
public Graph() {
10-
nodes = new ArrayList<>();
11+
public Graph(int numofEdge) {
12+
super(numofEdge,3);
13+
graph = getTable();
14+
//nodes = new ArrayList<>();
1115
}
12-
13-
public Graph(List<Node> node) {
14-
nodes = node;
16+
public List<Node> getGraphNode(){
17+
List<Node> nodes = new ArrayList<>();
18+
String [][]edge = graph.getTableString();
19+
int numEdge = edge.length;
20+
21+
for (String[] ed : edge) {
22+
int n1 = Integer.parseInt(ed[0]);
23+
int n2 = Integer.parseInt(ed[1]);
24+
int weig = Integer.parseInt(ed[2]);
25+
26+
if (!nodes.contains(new Node(n1))) {
27+
nodes.add(new Node(n1));
28+
}
29+
if (!nodes.contains(new Node(n2))){
30+
nodes.add(new Node(n2));
31+
}
32+
Node node1 = nodes.get(nodes.indexOf(new Node(n1)));
33+
Node node2 = nodes.get(nodes.indexOf(new Node(n2)));
34+
node1.adj.put(node2, weig);
35+
// INDIRECTED GRAPH, REMOVE THIS LINE TO MAKE IT DIRECTED GRAPH
36+
node2.adj.put(node1, weig);
37+
}
38+
return nodes;
1539
}
16-
17-
40+
1841
}
1942
class Node {
2043
String stringData;
21-
int intData;
22-
List<Node> adj;
44+
int nodeNumber;
45+
Map<Node, Integer> adj;
2346
public Node() {
24-
intData = -1;
2547
stringData = null;
26-
adj = new ArrayList<>();
48+
adj = new HashMap<>();
2749
}
2850

29-
public Node(int iData , String sData) {
30-
intData = iData;
51+
public Node(int nodeNum) {
52+
adj = new HashMap<>();
53+
this.nodeNumber= nodeNum;
54+
}
55+
public Node(int nodeNum , String sData) {
56+
adj = new HashMap<>();
57+
this.nodeNumber= nodeNum;
3158
stringData = sData;
59+
3260
}
33-
34-
35-
public List<Node> getNeighbor() {
61+
public Map getNeighbor() {
3662
return adj;
3763
}
3864

65+
@Override
66+
public boolean equals(Object o){
67+
Node n = (Node)o;
68+
return n.nodeNumber == this.nodeNumber ? true:false;
69+
}
3970

4071
}

java/Table.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ private String getRow(String[] row){
4848
public Table getTable(){
4949
return this;
5050
}
51+
public String[][] getTableString(){
52+
return table;
53+
}
5154
public String get(int i,int j) {
5255
return table[i][j];
5356
}

0 commit comments

Comments
 (0)