Benutzer-Werkzeuge

Webseiten-Werkzeuge


anhang:graphadj:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
anhang:graphadj:start [2024/11/29 10:21] Martin Pabstanhang:graphadj:start [2024/12/06 07:17] (aktuell) Martin Pabst
Zeile 58: Zeile 58:
   public void setKante(String knoten1, String knoten2, int gewicht12, int gewicht21)   public void setKante(String knoten1, String knoten2, int gewicht12, int gewicht21)
 </code> </code>
 +[[.loesung1:start|Lösung]]
 </WRAP> </WRAP>
  
-<HTML> 
-<div class="java-online" style="height: 70vh; width: 100%" data-java-online="{'withBottomPanel': true, 'id': 'GraphMitKnotenliste'}"> 
- 
-<script type="text/plain" title="Graph.java"> 
-public class Graph { 
-   //Attribute deklarieren 
-   private Knoten[] knotenliste; 
-   private int maxAnzahl; //maximale Knotenanzahl 
-   private int anzahl; // tatsächliche Knotenanzahl, gibt den Index des ersten freien Platzes im Array an 
-   private int[][] adjazenzmatrix;  
-   //[i][j] != 0 bedeutet es gibt einen Pfeil von i nach j  
-  
-   //Konstruktor 
-   public Graph(int maxAnzahl) { 
-      this.maxAnzahl = maxAnzahl; 
-      anzahl = 0; 
-      knotenliste = new Knoten[maxAnzahl]; 
-      adjazenzmatrix = new int [maxAnzahl][maxAnzahl]; 
-  
-   } 
- 
-   public int getAnzahl() { 
-      return anzahl; 
-   } 
- 
-   public void knotenEinfuegen(Knoten k) { 
-      int index = getNächsterFreierKnotenIndex(); 
-      knotenliste[index] = k; 
-      anzahl++; 
-   } 
- 
-   private int getNächsterFreierKnotenIndex() { 
-      for (int i = 0; i < maxAnzahl; i++) { 
-         if(knotenliste[i] == null) return i; 
-      } 
-       
-      throw new RuntimeException("Keine freien Plätze für Knoten mehr verfügbar!"); 
- 
-      return -1; // Hier kommt das Programm nie hin. 
-   } 
- 
-   public Knoten getKnotenAnPosition(int index) { 
-      return knotenliste[index]; 
-   } 
- 
-   public void knotenlisteAusgeben() { 
-      for (int i = 0; i < maxAnzahl; i++) { 
-         Knoten k = knotenliste[i]; 
-         if(k != null) { 
-            println(k.toString()); 
-         } 
-      } 
-   } 
- 
-   public void knotenLoeschen(int index) { 
-      knotenliste[index] = null; 
-      for (int i = 0; i < maxAnzahl; i++) { 
-         adjazenzmatrix[index][i] = 0; 
-         adjazenzmatrix[i][index] = 0; 
-      } 
-   } 
-    
-   public void setKante(int index1, int index2, int gewicht12, int gewicht21) { 
-      adjazenzmatrix[index1][index2] = gewicht12; 
-      adjazenzmatrix[index2][index1] = gewicht21; 
-   } 
- 
-   public void setKante(int index1, int index2, int gewicht) { 
-      setKante(index1, index2, gewicht, gewicht); 
-   } 
- 
-   public int knotenIndexSuchen(String name) { 
-      for (int i = 0; i < maxAnzahl; i++) { 
-         Knoten k = knotenliste[i]; 
-         if(k != null && k.getInhalt().getName() == name) { 
-            return i; 
-         } 
-      } 
-      return -1; 
-   } 
- 
-   public void setKante(String knoten1, String knoten2, int gewicht12, int gewicht21) { 
-      int index1 = knotenIndexSuchen(knoten1); 
-      int index2 = knotenIndexSuchen(knoten2); 
-       
-      if(index1 == -1 && index2 == -1) return; 
- 
-      setKante(index1, index2, gewicht12, gewicht21); 
- 
-   } 
- 
-   public void setKante(String knoten1, String knoten2, int gewicht) { 
-      setKante(knoten1, knoten2, gewicht, gewicht); 
-   } 
-    
- 
-} 
-</script> 
-<script type="text/plain" title="Knoten.java"> 
-public class Knoten { 
-   private Datenelement inhalt; 
-  
-//Konstruktor 
-   public Knoten(Datenelement d) { 
-      inhalt = d;  
-   } 
-  
-   //get-Methode 
-   public Datenelement getInhalt() { 
-      return inhalt; 
-   } 
-  
-   //set - Methode 
-   public void setInhalt(Datenelement d) { 
-      inhalt = d; 
-   } 
-    
-   public String toString() { 
-      return inhalt.getName(); 
-   } 
-} 
-</script> 
-<script type="text/plain" title="Datenelement.java"> 
-class Datenelement { 
-   private String name; 
- 
-   public Datenelement(String name) { 
-      this.name = name; 
-   } 
- 
-   public String getName() { 
-      return name; 
-   } 
- 
-   public void setName(String name) { 
-      this.name = name; 
-   } 
-} 
-</script> 
-<script type="text/plain" title="Tests.java"> 
-@Test 
-class MyFirstTestClass { 
- 
-   Graph getExampleGraph() { 
-      Graph g = new Graph(10); 
-      Knoten k1 = new Knoten(new Datenelement("Erstes")); 
-      Knoten k2 = new Knoten(new Datenelement("Erstes")); 
-      Knoten k3 = new Knoten(new Datenelement("Erstes")); 
-      g.knotenEinfuegen(k1); 
-      g.knotenEinfuegen(k2); 
-      g.knotenEinfuegen(k3); 
-      return g; 
-   } 
- 
-   @Test 
-   void testGetAnzahl() { 
-      Graph g = getExampleGraph(); 
-      assertEquals(3, g.getAnzahl(), "Graph.getAnzahl funktioniert nicht!"); 
-   } 
- 
-    
-   @Test 
-   void testKnotenLoeschen() { 
-      Graph g = getExampleGraph(); 
-      g.knotenLoeschen(2); 
-      assertEquals(2, g.getAnzahl(), "Graph.getAnzahl funktioniert nicht!"); 
-   } 
-} 
-</script> 
-</div> 
-</HTML> 
  
anhang/graphadj/start.1732875692.txt.gz · Zuletzt geändert: 2024/11/29 10:21 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki