Testpush von Intellij

This commit is contained in:
cmerkens 2024-05-22 23:00:22 +02:00
parent 1ca7277020
commit 89897bf745
7 changed files with 198 additions and 3 deletions

View File

@ -7,10 +7,29 @@ public class Graph {
private ArrayList<Knoten> knotenArrayList;
private ArrayList<Kante> kantenArrayList;
ArrayList<ArrayList<Object>> adjazenzmatrix;
ArrayList<ArrayList<Object>> adjazenzliste;
public Graph () {
this.knotenArrayList = new ArrayList<>();
this.kantenArrayList = new ArrayList<>();
this.adjazenzmatrix = createAdjazenzmatrix();
this.adjazenzliste = createAdjazenzliste();
}
public static void main(String[] args) {
Graph meinGraph = new Graph();
meinGraph.addKnoten();
meinGraph.addKnoten();
meinGraph.addKnoten();
// meinGraph.addKnoten();
// meinGraph.addKnoten();
// meinGraph.addKnoten();
System.out.println(meinGraph.createAdjazenzmatrix());
}
@ -64,4 +83,108 @@ public class Graph {
public void kontrahiereKante(Kante k1) {
this.fusioniereKnoten(k1.getStartKnoten(), k1.getEndKnoten());
}
public ArrayList<ArrayList<Object>> createAdjazenzmatrix() {
ArrayList<ArrayList<Object>> matrix = new ArrayList<>();
matrix.add(new ArrayList<Object>());
for (int i = 0; i < this.knotenArrayList.size(); i++) {
matrix.get(0).add(knotenArrayList.get(i));
matrix.add(new ArrayList<Object>());
matrix.get(i+1).add(knotenArrayList.get(i));
}
for (ArrayList<Object> i: matrix) {
for (int j = 0; j < matrix.getFirst().size(); j++) {
i.add(0);
}
}
for (Kante i: kantenArrayList) {
int von = matrix.getFirst().indexOf(i.getStartKnoten());
int nach = matrix.getFirst().indexOf(i.getEndKnoten());
ArrayList<Object> neu = matrix.get(von+1);
neu.set(nach, i.getGewichtung());
matrix.set(von+1, neu);
}
return matrix;
}
public ArrayList<ArrayList<Object>> createAdjazenzliste() {
return null;
}
public boolean isUntergraphOf(Graph g1) {
return true;
}
public boolean isTeilgraphOf(Graph g1) {
return true;
}
public boolean isZusammenhaengend() {
return true;
}
public boolean isVollstaendig() {
return true;
}
// Graph is 2 colorble or no odd length cycles
public boolean isBipartit() {
return true;
}
public boolean isVollstaendigBipartit() {
return true;
}
public boolean isZyklus() {
return true;
}
public boolean isRegulaer() {
return true;
}
public boolean isPlanar() {
return true;
}
public int durchmesser() {
return 1;
}
public int radius() {
return 1;
}
public ArrayList<Knoten> rand() {
return null;
}
public ArrayList<Knoten> zentrum() {
return null;
}
public boolean isIsomorphTo(Graph g1) {
return true;
}
}

View File

@ -3,18 +3,20 @@ package GraphenTeorie;
public class Kante {
private String beschriftung;
private int gewichtung;
private Knoten startKnoten;
private Knoten endKnoten;
public Kante(Knoten startKnoten, Knoten endKnoten) {
this(startKnoten, endKnoten, "");
this(startKnoten, endKnoten, 1, "");
}
public Kante(Knoten startKnoten, Knoten endKnoten, String beschriftung) {
public Kante(Knoten startKnoten, Knoten endKnoten, int gewichtung, String beschriftung) {
this.beschriftung = beschriftung;
this.gewichtung = gewichtung;
this.startKnoten = startKnoten;
this.endKnoten = endKnoten;
@ -39,6 +41,16 @@ public class Kante {
}
public void editGewichtung(int neueGewichtung) {
this.gewichtung = neueGewichtung;
}
public int getGewichtung() {
return this.gewichtung;
}
public Knoten getOtherSide(Knoten eingabe) {
if (eingabe == this.startKnoten) {
return this.endKnoten;
@ -48,4 +60,9 @@ public class Kante {
return null;
}
}
public boolean isBruecke() {
return true;
}
}

View File

@ -70,4 +70,19 @@ public class Knoten {
public void editBeschriftung(String neueBeschriftung) {
this.beschriftung = neueBeschriftung;
}
public boolean isArtikulation() {
return true;
}
public int distanzTo(Knoten k1) {
return 1;
}
public int extrenzitaet() {
return 1;
}
}

View File

@ -0,0 +1,5 @@
.svgFeld {
width: 100%;
height: 100%;
display: block;
}

View File

@ -5,9 +5,15 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Graphenteorie</title>
<link rel="stylesheet" href="index.css">
<script src="index.js"></script>
</head>
<body>
<h1>Graphenteorie Visualisierung</h1>
<svg id="svgFeld">
<rect width="100%" height="100%" fill="blue" />
</svg>
<script src="index.js"></script>
</body>
</html>

View File

@ -0,0 +1,20 @@
// Funktion zum Hinzufügen eines Kreises zu einem SVG-Element
function addCircleToSvg(svgId, cx, cy, r, fill) {
// Hole das SVG-Element anhand der ID
const svg = document.getElementById(svgId);
// Erstelle ein neues <circle> Element
const circle = document.createElementNS("http://www.w3.org/2000/svg", "circle");
// Setze die Attribute des Kreises
circle.setAttribute("cx", cx);
circle.setAttribute("cy", cy);
circle.setAttribute("r", r);
circle.setAttribute("fill", fill);
// Füge den Kreis dem SVG-Element hinzu
svg.appendChild(circle);
}
// Beispiel: Hinzufügen eines Kreises mit cx=100, cy=100, r=50, und Farbe rot
addCircleToSvg('svgFeld', 50, 50, 10, 'red');

View File

@ -0,0 +1,9 @@
package Semester2;
public class test {
public static void main(String[] args) {
for (int i = 10; i < 0; i++) {
System.out.println("lol");
}
}
}