anhang:graphadj:start
Dies ist eine alte Version des Dokuments!
Anhang 1: Graph-Klasse mit Knotenbezeichnern
Im Abitur begegnet einem bisweilen eine Klasse Graph
, die nicht nur - wie schon oft in diesem Skript praktiziert - die Kanten in einer Adjazenzmatrix speichert, sondern zusätzlich die Knoten-Objekte (oder einfach nur die Bezeichner der Knoten) in einem Array. Ihre Aufgabe ist es, eine solche Klasse zu entwickeln, die folgenden Vorgaben entspricht:
- Die Klasse Knoten ist vorgegeben:
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; } }
- Die Klasse
Datenelement
enthält nur ein Attributname
vom TypString
und eine entsprechende MethodegetName()
- Hier der Beginn der Klasse
Graph
:
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]; }
- Das Feld
Knoten
wird immer vom Anfang her aufgefüllt ohne Lücken zu lassen, die überflüssigen Elemente am Ende werden mit dem Wertnull
gefüllt. - Die Klasse Graph soll folgende Methoden haben:
public void knotenEinfuegen(Knoten k) public int getAnzahl() public Knoten getKnotenAnPosition(int index) public void knotenlisteAusgeben() public void knotenLoeschen(int index) public void setPfeil(int startindex, int endindex, int gewicht) public void setKante(int startindex, int endindex, int gewicht) public int knotenIndexSuchen(String name) public void setzePfeil(String start, String ziel, int gewicht) public void setzeKante(String start, String ziel, int gewicht)
anhang/graphadj/start.1732696788.txt.gz · Zuletzt geändert: 2024/11/27 08:39 von Martin Pabst