Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
5ae8c0d2ad | ||
|
e6c365aecf | ||
|
3b4a6f74b6 | ||
|
bbe304606a | ||
|
f9f636c6f3 | ||
|
41680b3893 | ||
|
2de0ac5a02 | ||
|
2448464ed4 | ||
|
98688a467d | ||
|
e49f7569f8 |
24
csv/24n.csv
Normal file
24
csv/24n.csv
Normal file
@ -0,0 +1,24 @@
|
||||
0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||
1;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||
0;1;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||
0;1;1;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||
0;0;1;1;0;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||
0;0;0;0;1;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||
0;0;0;0;1;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0
|
||||
0;0;0;0;1;0;0;0;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||
0;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||
0;0;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||
0;0;0;0;0;0;0;1;0;1;0;0;0;1;0;0;1;0;0;0;0;0;0;0
|
||||
0;0;0;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0
|
||||
0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0
|
||||
0;0;0;0;0;0;0;0;0;0;1;0;0;0;1;0;0;0;0;0;0;0;0;0
|
||||
0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;1;0;1;1;0;0;0;0;0
|
||||
0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;1;0;0;0;0;0;0;0
|
||||
0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;1;0;0;0;1;1;0;0;0
|
||||
0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;1;0;0;0;0;0
|
||||
0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0
|
||||
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;1;0;0;0
|
||||
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;0;1;0;0
|
||||
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;1;1
|
||||
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;1
|
||||
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;1;0
|
|
50
csv/50n.csv
Normal file
50
csv/50n.csv
Normal file
@ -0,0 +1,50 @@
|
||||
0;1;1;0;0;0;0;1;0;1;0;1;0;0;1;1;1;1;0;1;1;1;1;1;0;1;0;0;1;1;0;1;0;1;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;0
|
||||
0;0;1;0;1;0;0;1;1;1;0;1;1;0;1;1;0;0;1;0;1;0;1;0;0;0;1;0;0;1;0;1;1;0;0;0;1;0;0;0;1;0;1;0;1;0;1;0;1;1
|
||||
1;0;0;1;0;0;0;1;0;1;1;1;1;0;0;1;0;1;1;1;0;1;1;1;1;0;0;1;1;1;1;1;1;0;0;1;0;0;1;1;0;1;0;0;1;0;0;0;1;0
|
||||
1;1;1;0;0;0;1;1;0;1;1;1;1;1;0;1;1;0;1;1;0;0;0;1;1;0;1;1;1;0;0;0;0;0;0;1;1;1;0;0;1;0;0;1;0;0;1;0;0;0
|
||||
1;0;1;0;0;0;1;0;1;1;0;1;0;1;0;1;0;0;0;1;1;1;1;1;1;0;0;1;1;1;1;1;0;0;0;1;1;1;1;1;1;0;1;1;0;0;0;0;1;1
|
||||
0;0;0;1;1;0;1;1;0;1;0;1;1;1;0;1;0;1;1;1;0;1;0;0;1;1;0;1;1;0;0;0;1;1;0;1;0;1;0;0;1;1;0;1;1;0;0;1;0;0
|
||||
0;0;0;0;0;0;0;1;1;0;0;1;1;0;1;1;0;0;0;1;0;0;0;0;0;0;1;1;1;0;0;1;0;1;0;1;0;0;1;1;1;0;0;1;1;0;1;1;0;1
|
||||
1;0;0;1;1;0;0;0;0;0;1;0;1;0;0;1;1;1;0;1;1;0;1;0;0;1;0;1;1;0;0;0;0;0;0;1;0;1;1;1;1;0;0;0;1;1;1;1;1;0
|
||||
1;0;0;1;0;0;0;0;0;1;0;0;1;0;1;1;0;0;0;0;1;0;1;0;1;1;0;1;0;1;0;1;1;1;0;1;0;0;0;0;0;1;1;1;0;0;1;1;0;1
|
||||
1;0;0;1;0;1;1;0;0;0;0;1;1;0;0;0;1;1;1;0;0;1;1;1;0;1;0;0;0;1;0;1;0;1;1;0;1;1;0;1;0;1;1;1;1;1;0;1;0;1
|
||||
0;0;0;0;1;1;1;1;0;1;0;1;1;0;1;0;1;1;0;1;0;0;0;1;1;1;1;0;0;0;1;0;1;0;1;0;0;0;0;0;1;0;1;1;0;0;0;0;1;0
|
||||
1;1;1;0;0;1;0;0;1;1;1;0;0;0;0;1;1;0;0;0;1;0;1;1;1;0;1;0;1;1;1;0;0;1;0;1;0;1;1;1;1;0;0;1;1;1;0;1;0;0
|
||||
1;0;1;1;1;1;0;0;0;1;1;1;0;0;0;1;0;0;1;0;1;1;1;1;0;0;0;0;0;0;1;0;1;1;1;1;0;0;0;0;1;0;1;1;0;1;1;1;0;1
|
||||
1;1;0;0;0;0;1;0;0;1;1;0;0;0;0;0;0;0;0;1;1;0;0;1;1;0;0;1;1;1;0;1;0;0;0;1;1;1;0;1;1;0;0;1;1;1;1;1;0;1
|
||||
0;1;0;0;0;0;1;0;0;1;1;0;0;1;0;1;1;1;0;0;0;1;0;1;1;1;0;0;0;1;0;0;0;1;1;1;0;0;0;0;1;0;0;1;0;1;1;1;0;1
|
||||
0;1;1;1;1;1;0;1;1;0;0;0;0;1;0;0;0;1;1;0;0;0;1;1;1;1;0;1;0;0;0;0;1;1;1;1;0;0;1;0;1;0;1;1;0;1;1;1;0;1
|
||||
0;1;1;0;1;1;0;0;0;0;0;0;0;1;0;1;0;0;0;1;0;0;1;0;0;0;0;0;1;1;1;0;1;1;1;1;0;1;0;1;0;0;0;0;0;0;0;0;1;0
|
||||
0;1;0;0;0;0;1;1;0;1;0;0;1;1;0;0;1;0;1;1;1;1;0;1;0;1;1;0;0;0;1;1;1;0;1;0;0;1;0;0;0;1;1;0;1;0;0;0;0;1
|
||||
1;0;0;0;0;0;1;1;1;0;1;1;0;1;1;0;0;1;0;0;1;0;1;0;0;1;0;0;0;1;1;1;0;0;0;0;0;1;0;0;0;0;1;0;1;1;1;1;0;1
|
||||
1;1;1;0;1;1;0;1;0;1;1;0;0;1;1;0;1;0;0;0;1;0;1;0;1;0;1;1;0;1;0;1;0;1;1;0;1;0;1;0;0;1;1;0;0;1;1;0;1;0
|
||||
0;1;0;0;0;0;0;1;1;0;1;0;1;0;1;0;1;1;0;0;0;1;0;1;1;1;0;1;0;1;0;1;0;1;1;1;0;1;0;0;1;0;0;0;0;0;0;1;1;1
|
||||
1;1;0;0;0;0;0;0;0;1;0;0;0;0;0;1;0;1;1;1;1;0;0;1;1;0;0;1;1;0;1;1;1;1;1;0;0;0;1;0;0;0;1;1;1;0;0;0;0;1
|
||||
1;0;1;1;0;0;0;1;1;1;0;1;0;1;0;1;0;0;1;0;0;0;0;1;0;0;1;0;1;1;0;0;1;1;1;1;1;1;0;1;1;1;0;0;1;0;0;0;0;0
|
||||
0;0;0;1;1;1;0;1;1;1;1;1;1;0;0;0;0;1;1;0;0;0;0;0;0;0;0;1;0;0;0;1;1;1;1;1;0;0;0;1;1;0;1;1;1;0;0;1;0;1
|
||||
0;0;0;1;0;1;0;1;0;1;1;1;0;0;1;0;0;0;1;0;1;0;0;0;0;0;0;1;1;0;0;0;1;1;0;1;1;1;1;0;1;1;0;0;1;1;1;1;0;0
|
||||
1;1;1;1;1;1;0;0;0;1;1;0;1;1;1;0;1;1;1;0;1;0;0;1;1;0;0;0;0;0;0;1;1;1;0;1;1;0;1;1;0;1;1;1;0;1;0;1;0;0
|
||||
1;1;1;1;0;1;1;1;1;1;1;0;0;1;0;0;0;0;1;0;0;0;0;0;0;1;0;1;1;0;0;0;1;1;1;1;0;1;0;0;0;1;0;1;0;1;1;0;0;0
|
||||
0;0;0;1;0;1;0;0;0;0;1;1;0;0;0;0;1;1;0;0;1;1;0;1;1;1;1;0;1;1;1;0;0;0;0;1;1;1;1;1;0;0;0;0;0;1;1;0;1;0
|
||||
1;1;1;0;0;0;1;1;1;1;0;1;1;1;1;1;1;1;1;1;0;1;0;0;1;0;1;1;0;1;1;1;1;1;1;1;0;1;0;0;1;0;1;1;0;0;1;1;1;1
|
||||
0;0;1;0;1;1;0;1;0;0;0;1;0;0;0;0;1;1;1;1;0;0;0;0;0;0;0;1;1;0;0;1;0;0;1;1;1;1;0;0;0;1;0;0;1;1;0;1;1;0
|
||||
1;1;0;1;0;1;0;0;1;0;1;0;0;0;1;0;1;1;0;1;1;0;0;1;0;1;0;1;1;0;0;1;1;1;1;0;1;0;0;1;0;0;1;0;1;0;1;1;1;1
|
||||
1;0;1;0;0;0;1;0;1;1;1;0;1;1;1;0;1;1;0;1;0;0;1;0;0;1;1;1;1;0;1;0;1;0;1;1;1;1;0;1;1;0;0;0;0;1;0;1;0;0
|
||||
0;0;1;1;1;1;0;0;0;0;1;0;0;0;1;1;0;0;1;1;0;0;0;1;1;0;0;1;0;0;1;1;0;0;1;0;1;0;0;0;1;0;1;0;1;1;1;0;0;1
|
||||
1;1;1;1;1;1;1;1;0;0;1;1;0;1;0;1;1;0;0;0;0;1;1;1;0;0;1;0;1;0;1;0;0;0;1;0;0;0;1;1;0;1;1;1;1;0;1;1;1;1
|
||||
0;1;0;0;0;0;0;0;0;1;1;0;0;0;1;0;1;0;1;0;0;0;0;0;1;0;0;0;1;0;0;1;1;0;0;1;0;0;0;0;1;0;1;1;0;0;1;1;0;1
|
||||
1;0;0;0;1;0;1;1;1;0;1;0;0;1;0;1;1;0;0;1;0;0;1;0;0;1;1;0;0;0;1;1;0;0;1;0;1;0;1;1;1;1;1;1;0;0;0;1;0;1
|
||||
0;0;0;1;0;0;1;0;1;1;1;1;0;1;0;1;0;1;1;1;0;0;0;0;1;1;1;1;1;0;1;0;1;1;0;1;0;0;0;0;0;0;1;0;0;1;1;0;1;0
|
||||
1;0;0;0;0;0;0;1;0;0;1;1;1;1;1;0;0;0;0;0;1;1;0;0;1;1;1;0;1;0;0;0;1;0;0;1;1;0;0;0;1;1;0;1;0;1;1;0;1;0
|
||||
1;0;1;0;1;1;1;0;1;0;0;0;1;1;1;0;0;1;0;0;0;0;1;0;0;0;1;0;1;0;1;1;1;0;1;0;1;1;0;0;0;1;0;0;0;1;0;1;1;1
|
||||
0;1;1;1;1;0;0;1;0;0;1;0;1;1;1;1;1;0;1;1;1;1;0;1;0;1;0;0;1;0;1;0;0;0;0;0;1;0;1;0;1;0;1;0;1;1;0;1;1;0
|
||||
1;1;1;1;1;1;0;1;0;0;1;0;1;0;0;1;0;1;0;0;0;0;1;1;0;0;0;0;1;0;0;0;1;1;1;0;1;1;1;1;0;0;0;1;1;1;0;0;0;1
|
||||
1;1;0;0;0;0;1;0;0;0;1;1;1;1;0;0;1;0;0;1;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;1;1;0;1;0;0;0;0;1;0;0;1;0;0;0
|
||||
0;0;1;0;1;0;0;0;0;0;0;0;1;1;0;0;0;0;0;1;1;1;1;0;1;1;0;1;1;1;0;1;1;0;0;1;1;0;1;1;0;0;0;0;0;1;0;1;1;1
|
||||
1;1;0;1;0;1;0;1;0;1;1;0;0;0;0;0;1;1;1;1;0;1;1;1;0;1;1;0;1;0;1;1;1;0;0;0;0;0;1;0;0;0;1;0;0;0;0;1;0;0
|
||||
1;0;0;0;1;1;0;1;0;0;1;1;0;0;1;0;0;0;1;1;1;0;0;0;0;1;1;0;1;1;1;1;1;1;1;0;0;1;1;1;1;0;1;1;0;0;1;0;1;0
|
||||
0;1;0;0;1;1;0;0;1;0;0;1;1;1;0;0;1;1;1;1;1;0;0;1;0;1;0;1;0;0;1;0;0;1;1;0;1;0;1;0;0;0;0;1;1;0;0;1;1;0
|
||||
0;0;1;0;0;1;1;0;0;0;0;1;0;0;1;1;0;1;0;1;0;0;0;0;0;1;0;1;1;0;0;1;0;0;0;0;0;0;0;0;0;1;0;1;1;0;0;1;1;1
|
||||
0;0;1;1;0;0;1;1;1;1;1;1;1;1;0;1;1;0;0;0;1;1;1;1;0;1;0;1;0;1;1;0;0;0;1;0;0;1;1;0;1;0;1;0;0;0;1;0;1;0
|
||||
0;0;0;1;0;0;0;1;0;0;1;1;0;1;0;1;0;0;1;0;1;1;1;0;0;0;0;0;1;0;1;1;0;0;1;1;0;0;0;1;0;1;1;1;0;1;1;0;0;1
|
||||
1;0;0;0;0;1;0;1;0;0;0;0;0;0;1;1;1;1;1;1;1;0;0;0;1;1;1;0;1;1;1;0;1;0;1;0;1;0;1;1;1;1;0;1;0;1;0;0;0;0
|
|
7
csv/5n.csv
Normal file
7
csv/5n.csv
Normal file
@ -0,0 +1,7 @@
|
||||
0;0;0;0;0;0;0
|
||||
0;0;0;0;1;0;0
|
||||
0;0;0;0;0;0;0
|
||||
0;0;0;0;1;0;0
|
||||
0;1;0;1;0;0;0
|
||||
0;0;0;0;0;0;1
|
||||
0;0;0;0;0;1;0
|
|
5
csv/art-brck.csv
Normal file
5
csv/art-brck.csv
Normal file
@ -0,0 +1,5 @@
|
||||
0;0;1;1;0
|
||||
0;0;1;1;0
|
||||
1;1;0;1;0
|
||||
1;1;1;0;1
|
||||
0;0;0;1;0
|
|
5
csv/empty.csv
Normal file
5
csv/empty.csv
Normal file
@ -0,0 +1,5 @@
|
||||
0;0;0;0;0
|
||||
0;0;0;0;0
|
||||
0;0;0;0;0
|
||||
0;0;0;0;0
|
||||
0;0;0;0;0
|
|
5
csv/graph.csv
Normal file
5
csv/graph.csv
Normal file
@ -0,0 +1,5 @@
|
||||
0;0;1;0;0
|
||||
0;0;1;0;0
|
||||
1;1;0;1;1
|
||||
0;0;1;0;1
|
||||
0;0;1;1;0
|
|
@ -20,12 +20,12 @@ public class Graph {
|
||||
public Graph(String file) {
|
||||
adjazenzMatrix = new Matrix(file);
|
||||
calculateDistanzMatrix();
|
||||
calculateWegMatrix();
|
||||
calculateWegMatrix(adjazenzMatrix);
|
||||
calculateExzentrizitäten();
|
||||
calculateProperties();
|
||||
findComponents();
|
||||
findBridges(file);
|
||||
findArticulations(file);
|
||||
findBridges();
|
||||
findArticulations();
|
||||
}
|
||||
|
||||
public void calculateDistanzMatrix() {
|
||||
@ -57,22 +57,22 @@ public class Graph {
|
||||
}
|
||||
}
|
||||
|
||||
public void calculateWegMatrix() {
|
||||
wegMatrix = new Matrix(adjazenzMatrix.getRowLength(), adjazenzMatrix.getColumnLength());
|
||||
Matrix potenzMatrix = adjazenzMatrix;
|
||||
public void calculateWegMatrix(Matrix matrix) {
|
||||
wegMatrix = new Matrix(matrix.getRowLength(), matrix.getColumnLength());
|
||||
Matrix potenzMatrix = matrix;
|
||||
|
||||
for(int columnIndex=0; columnIndex < wegMatrix.getColumnLength(); columnIndex++) {
|
||||
for(int rowIndex=0; rowIndex < wegMatrix.getRowLength(); rowIndex++) {
|
||||
if(columnIndex == rowIndex) {
|
||||
wegMatrix.insert(rowIndex, columnIndex, 1);
|
||||
} else if(adjazenzMatrix.getValueAt(rowIndex, columnIndex) > 0 && wegMatrix.getValueAt(rowIndex, columnIndex) == 0) {
|
||||
} else if(matrix.getValueAt(rowIndex, columnIndex) > 0 && wegMatrix.getValueAt(rowIndex, columnIndex) == 0) {
|
||||
wegMatrix.insert(rowIndex, columnIndex, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(int k = 2; k < wegMatrix.getRowLength(); k++) {
|
||||
potenzMatrix = potenzMatrix.multiply(adjazenzMatrix);
|
||||
potenzMatrix = potenzMatrix.multiply(matrix);
|
||||
|
||||
for(int columnIndex=0; columnIndex < wegMatrix.getColumnLength(); columnIndex++) {
|
||||
for(int rowIndex=0; rowIndex < wegMatrix.getRowLength(); rowIndex++) {
|
||||
@ -86,6 +86,7 @@ public class Graph {
|
||||
|
||||
public void calculateExzentrizitäten() {
|
||||
exzentrizitäten = new ArrayList<>(1);
|
||||
connected = true;
|
||||
|
||||
for(int rowIndex = 0; rowIndex < distanzMatrix.getRowLength(); rowIndex++) {
|
||||
int exzentrizität = 0;
|
||||
@ -110,7 +111,6 @@ public class Graph {
|
||||
|
||||
radius = Integer.MAX_VALUE;
|
||||
diameter = -1;
|
||||
connected = true;
|
||||
centre = new ArrayList<>(1);
|
||||
|
||||
for(int rowIndex = 0; rowIndex < exzentrizitäten.size(); rowIndex++) {
|
||||
@ -164,17 +164,18 @@ public class Graph {
|
||||
newComponents.add(component);
|
||||
}
|
||||
}
|
||||
return newComponents;
|
||||
return newComponents;
|
||||
}
|
||||
|
||||
public void findBridges(String file) {
|
||||
public void findBridges() {
|
||||
Matrix tempMatrix = adjazenzMatrix.clone();
|
||||
bridges = new ArrayList<>(1);
|
||||
ArrayList<ArrayList<Integer>> newComponents;
|
||||
int[] bridge;
|
||||
boolean contains;
|
||||
|
||||
for(int rowIndex = 0; rowIndex < adjazenzMatrix.getRowLength(); rowIndex++) {
|
||||
for(int columnIndex = 0; columnIndex < adjazenzMatrix.getColumnLength(); columnIndex++) {
|
||||
for(int rowIndex = 0; rowIndex < tempMatrix.getRowLength(); rowIndex++) {
|
||||
for(int columnIndex = 0; columnIndex < tempMatrix.getColumnLength(); columnIndex++) {
|
||||
if(rowIndex == columnIndex) {
|
||||
continue;
|
||||
}
|
||||
@ -187,12 +188,11 @@ public class Graph {
|
||||
bridge[1] = columnIndex + 1;
|
||||
bridge[0] = rowIndex + 1;
|
||||
}
|
||||
|
||||
|
||||
adjazenzMatrix.insert(rowIndex, columnIndex, 0);
|
||||
adjazenzMatrix.insert(columnIndex, rowIndex, 0);
|
||||
tempMatrix.insert(rowIndex, columnIndex, 0);
|
||||
tempMatrix.insert(columnIndex, rowIndex, 0);
|
||||
|
||||
calculateWegMatrix();
|
||||
calculateWegMatrix(tempMatrix);
|
||||
|
||||
newComponents = findComponents(wegMatrix);
|
||||
|
||||
@ -208,25 +208,26 @@ public class Graph {
|
||||
bridges.add(bridge);
|
||||
}
|
||||
|
||||
adjazenzMatrix = new Matrix(file);
|
||||
tempMatrix = adjazenzMatrix.clone();
|
||||
}
|
||||
}
|
||||
calculateWegMatrix();
|
||||
calculateWegMatrix(adjazenzMatrix);
|
||||
}
|
||||
|
||||
public void findArticulations(String file) {
|
||||
public void findArticulations() {
|
||||
Matrix tempMatrix = adjazenzMatrix.clone();
|
||||
articulations = new ArrayList<>(1);
|
||||
ArrayList<ArrayList<Integer>> newComponents;
|
||||
|
||||
for(int i = 0; i < adjazenzMatrix.getRowLength(); i++) {
|
||||
for(int rowIndex = 0; rowIndex < adjazenzMatrix.getRowLength(); rowIndex++) {
|
||||
for(int columnIndex = 0; columnIndex < adjazenzMatrix.getColumnLength(); columnIndex++) {
|
||||
adjazenzMatrix.insert(rowIndex, i, 0);
|
||||
adjazenzMatrix.insert(i, columnIndex, 0);
|
||||
for(int i = 0; i < tempMatrix.getRowLength(); i++) {
|
||||
for(int rowIndex = 0; rowIndex < tempMatrix.getRowLength(); rowIndex++) {
|
||||
for(int columnIndex = 0; columnIndex < tempMatrix.getColumnLength(); columnIndex++) {
|
||||
tempMatrix.insert(rowIndex, i, 0);
|
||||
tempMatrix.insert(i, columnIndex, 0);
|
||||
}
|
||||
}
|
||||
|
||||
calculateWegMatrix();
|
||||
calculateWegMatrix(tempMatrix);
|
||||
|
||||
newComponents = findComponents(wegMatrix);
|
||||
|
||||
@ -234,9 +235,9 @@ public class Graph {
|
||||
articulations.add(i + 1);
|
||||
}
|
||||
|
||||
adjazenzMatrix = new Matrix(file);
|
||||
tempMatrix = adjazenzMatrix.clone();
|
||||
}
|
||||
calculateWegMatrix();
|
||||
calculateWegMatrix(adjazenzMatrix);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
@ -279,7 +280,10 @@ public class Graph {
|
||||
}
|
||||
s += "}";
|
||||
|
||||
s += "\nArtikulationen: " + articulations.toString();
|
||||
s += "\nArtikulationen: ";
|
||||
if(articulations != null)
|
||||
s += articulations.toString();
|
||||
|
||||
return s;
|
||||
}
|
||||
}
|
@ -1,7 +1,10 @@
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.util.Random;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.FileWriter;
|
||||
|
||||
public class Matrix {
|
||||
private int[][] matrix;
|
||||
@ -10,6 +13,19 @@ public class Matrix {
|
||||
|
||||
public static void main(String[] args) {}
|
||||
|
||||
public Matrix(int rowLength, int columnLength, boolean random) {
|
||||
if(!random) {
|
||||
matrix = new int[rowLength][columnLength];
|
||||
this.rowLength = rowLength;
|
||||
this.columnLength = columnLength;
|
||||
return;
|
||||
}
|
||||
matrix = new int[rowLength][columnLength];
|
||||
this.rowLength = rowLength;
|
||||
this.columnLength = columnLength;
|
||||
randomAdjazenzMatrix();
|
||||
}
|
||||
|
||||
public Matrix(String file) {
|
||||
readCSV(file);
|
||||
}
|
||||
@ -79,6 +95,49 @@ public class Matrix {
|
||||
}
|
||||
}
|
||||
|
||||
public Matrix clone() {
|
||||
int[][] clone = new int[rowLength][columnLength];
|
||||
|
||||
for(int columnIndex=0; columnIndex < columnLength; columnIndex++) {
|
||||
for(int rowIndex=0; rowIndex < rowLength; rowIndex++) {
|
||||
clone[rowIndex][columnIndex] = matrix[rowIndex][columnIndex];
|
||||
}
|
||||
}
|
||||
|
||||
return new Matrix(clone);
|
||||
}
|
||||
|
||||
public void randomAdjazenzMatrix() {
|
||||
Random r = new Random();
|
||||
for(int columnIndex=0; columnIndex < columnLength; columnIndex++) {
|
||||
for(int rowIndex=0; rowIndex < rowLength; rowIndex++) {
|
||||
if(rowIndex == columnIndex) {
|
||||
continue;
|
||||
}
|
||||
matrix[rowIndex][columnIndex] = r.nextInt(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void WriteToCsv(String filename) {
|
||||
String s = "";
|
||||
|
||||
try (BufferedWriter bw = new BufferedWriter(new FileWriter(filename))) {
|
||||
for(int columnIndex=0; columnIndex < columnLength; columnIndex++) {
|
||||
s = "";
|
||||
for(int rowIndex=0; rowIndex < rowLength; rowIndex++) {
|
||||
s += matrix[columnIndex][rowIndex];
|
||||
if(rowIndex < rowLength - 1) {
|
||||
s += ";";
|
||||
}
|
||||
}
|
||||
bw.write(s + "\n");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
String s = "";
|
||||
for(int columnIndex=0; columnIndex < columnLength; columnIndex++) {
|
||||
|
@ -1,6 +1,53 @@
|
||||
public class TestGraph {
|
||||
public static void main(String[] args) {
|
||||
Graph g = new Graph("");
|
||||
// test1();
|
||||
// test2();
|
||||
// test3();
|
||||
// test4();
|
||||
test5();
|
||||
}
|
||||
|
||||
static String pathToProgramRoot = "/home/rene/projects/Java/graphprogram";
|
||||
|
||||
|
||||
/*
|
||||
* This is a small not connected graph with articulations and bridges
|
||||
*/
|
||||
public static void test1() {
|
||||
Graph g = new Graph(pathToProgramRoot + "/csv/5n.csv");
|
||||
System.out.println(g);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Bigger graph with bridges and many articulations
|
||||
*/
|
||||
public static void test2() {
|
||||
Graph g = new Graph(pathToProgramRoot + "/csv/24n.csv");
|
||||
System.out.println(g);
|
||||
}
|
||||
|
||||
/*
|
||||
* Graph where each vetex is not connected to anything
|
||||
*/
|
||||
public static void test3() {
|
||||
Graph g = new Graph(pathToProgramRoot + "/csv/empty.csv");
|
||||
System.out.println(g);
|
||||
}
|
||||
|
||||
/*
|
||||
* small connected graph with one articulation and one bridge
|
||||
*/
|
||||
public static void test4() {
|
||||
Graph g = new Graph(pathToProgramRoot + "/csv/art-brck.csv");
|
||||
System.out.println(g);
|
||||
}
|
||||
|
||||
/*
|
||||
* randomly generated graph with x nodes
|
||||
*/
|
||||
public static void test5() {
|
||||
Graph g = new Graph(pathToProgramRoot + "/csv/50n.csv");
|
||||
System.out.println(g);
|
||||
}
|
||||
}
|
@ -1,6 +1,14 @@
|
||||
public class TestMatrix {
|
||||
public static void main(String[] args) {
|
||||
Matrix matrix = new Matrix("");
|
||||
// test1();
|
||||
// test2();
|
||||
createCsv();
|
||||
}
|
||||
|
||||
public static void test1() {
|
||||
String pathToProgramRoot = "/home/rene/projects/grpahprogram";
|
||||
|
||||
Matrix matrix = new Matrix(pathToProgramRoot + "/csv/graph.csv");
|
||||
Matrix scalarProduct;
|
||||
|
||||
System.out.println("RowLength: " + matrix.getRowLength());
|
||||
@ -11,4 +19,14 @@ public class TestMatrix {
|
||||
scalarProduct = matrix.multiply(matrix);
|
||||
System.out.println("\nScalarProduct A²: \n" + scalarProduct);
|
||||
}
|
||||
|
||||
public static void test2() {
|
||||
Matrix bruh = new Matrix(10, 10, true);
|
||||
System.out.println(bruh);
|
||||
}
|
||||
|
||||
public static void createCsv() {
|
||||
Matrix bruh = new Matrix(50, 50, true);
|
||||
bruh.WriteToCsv("csv/50n.csv");
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user