Tiefensuche < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) reagiert/warte auf Reaktion | Datum: | 20:29 Sa 19.06.2010 | Autor: | matheja |
Aufgabe | Guten Abend, leute ich brauch hilfe bei dieser Aufgabe:
Gegeben ist vollgender Java-Quell-code der ausgefüllt werden soll:
|
import java.util.*;
/**
* Gerichteter_Graph modelliert einen gerichteten Graphen,
* wobei die Knoten beginnend bei 0 durchnumeriert sind
*
*/
public abstract class Gerichteter_Graph
{
/**
* die folgenden Konstanten dienen der Klassifizierung
* von Pfeilen in einem gerichteten Graphen.
* FALSCHE_KNOTEN ist fuer den Fall vorgesehen, dass
* ein oder beide Endknoten eines Pfeiles
* nicht existieren
*/
public static final int FALSCHE_KNOTEN = -1;
public static final int KEIN_PFEIL = 0 ;
public static final int UNKLASSIFIZIERTER_PFEIL = 1;
public static final int BAUMPFEIL = 2;
public static final int VORWAERTSPFEIL = 3;
public static final int RUECKWAERTSPFEIL = 4;
public static final int SEITWAERTSPFEIL = 5;
/**
* pfeilartcheck ueberprueft, ob der Parameter eine
* gueltige Pfeilart darstellt
*
* @param pfeilart
* @param return pfeilart ist eine gueltige Pfeilart, d.h.
* KEIN_PFEIL, UNKLASSIFIZIERTER_PFEIL,
* BAUMPFEIL, VORWAERTSPFEIL,
* RUECKWAERTSPFEIL oder SEITWAERTSPFEIL
*/
public boolean pfeilartcheck(int pfeilart) {
return ( pfeilart==KEIN_PFEIL ||
pfeilart==UNKLASSIFIZIERTER_PFEIL ||
pfeilart==BAUMPFEIL ||
pfeilart==VORWAERTSPFEIL ||
pfeilart==RUECKWAERTSPFEIL ||
pfeilart== SEITWAERTSPFEIL );
}
/**
* knotencheck ueberprueft, ob der Parameter einen
* gueltigen Knoten darstellt
*
* @param i Knotennummer
* @return i ist eine korrekte Knotennummer
*/
public boolean knotencheck(int i){
return
( (i>=0) && (i<lies_knotenzahl()) );
}
/**
* init initialisiert den Graphen mit einer Knotenzahl,
* die durch den Parameter gegeben ist. Es gibt in dem
* Graphen nach der Initialisierung keine Pfeile
*
* @param anzahl_knoten
* @return anzahl_knoten > 0
*/
public abstract boolean init(int anzahl_knoten);
/**
* lies_knotenzahl liefert die Anzahl Knoten im Graphen
*/
public abstract int lies_knotenzahl();
/**
* setze_pfeil setzt einen Pfeil von i nach j
* @param pfeilart Art des zu setzenden Pfeiles:
* KEIN_PFEIL, UNKLASSIFIZIERTER_PFEIL,
* BAUMPFEIL, VORWAERTSPFEIL,
* RUECKWAERTSPFEIL oder SEITWAERTSPFEIL
* @param i Anfangsknoten des Pfeils
* @param j Endknoten des Pfeiles
*
* @return korrekter Aufruf
*/
public abstract boolean setze_Pfeil
(int pfeilart, int i, int j);
/**
* lies_Pfeil liest die Pfeilinformation zwischen Knoten
* i und j
* @param i Anfangsknoten des Pfeiles
* @param j Endknoten des Pfeiles
* @return Art des Pfeiles:
* FALSCHE_KNOTEN,
* KEIN_PFEIL, UNKLASSIFIZIERTER_PFEIL,
* BAUMPFEIL, VORWAERTSPFEIL,
* RUECKWAERTSPFEIL oder SEITWAERTSPFEIL
*/
public abstract int lies_Pfeil (int i, int j);
/**
* adjazenzliste liefert die Adjazenzliste des
* Knotens i als Iterator<Integer> - Objekt. Jedes
* Integer-Element des Iterators stellt einen Knoten
* dar, fuer den es einen Pfeil vom Knoten i gibt, in der
* Form: Knotennummer*10 + Pfeilart.
* Pfeilart kann die Werte
* UNKLASSIFIZIERTER_PFEIL,
* BAUMPFEIL, VORWAERTSPFEIL,
* RUECKWAERTSPFEIL oder SEITWAERTSPFEIL
* annehmen.
*
* @param i Knotennummer
* @return Iterator - Objekt fuer die Adjazenzliste
*/
public abstract Iterator<Integer> adjazenzliste(int i);
}
Informieren Sie sich zur Iterator - Schnittstelle mit Hilfe der Java-API-Dokumentation.
DieQuelle dieser abstrakten Klasse finden Sie in derDatei Gerichteter_Graph.java bei
den Beispielprogrammen zur Vorlesung.
Implementieren Sie eine Klasse
public class Matrix_Graph extends Gerichteter_Graph
indem Sie den Graphen durch eine erweiterte Adjazenzmatrix implementieren. Die Matrix
soll zusätzlich zu den Pfeilen die Darstellung einer Pfeilklassifikation ermöglichen. Verwenden
Sie hierzu in derMatrixWerte zur Pfeilklassifikation statt derWerte 0 und 1. Verwenden
Sie herzu die Konstanten
KEIN_PFEIl, UNKLASSIFIZIERTER_PFEIL, BAUMPFEIL, VORWAERTSPFEIL,
RUECKWAERTSPFEIL, SEITWAERTSPFEIL
aus Gerichteter_Graph.
Die ausgabe soll z.B so aussehen:
Ausgangsgraph:
Unklassifizierter Pfeil von 1 nach 3
Unklassifizierter Pfeil von 1 nach 4
Unklassifizierter Pfeil von 1 nach 5
Unklassifizierter Pfeil von 2 nach 4
Unklassifizierter Pfeil von 3 nach 5
Unklassifizierter Pfeil von 4 nach 3
Unklassifizierter Pfeil von 5 nach 1
Baum nach Tiefensuche bei Knoten 1:
Baumpfeil von 1 nach 3
Baumpfeil von 1 nach 4
Vorwaertspfeil von 1 nach 5
Unklassifizierter Pfeil von 2 nach 4
Baumpfeil von 3 nach 5
Seitwaertspfeil von 4 nach 3
Rueckwaertspfeil von 5 nach 1
DFBI: 0 1 0 2 4 3
DFEI: 7 4 7 2 3 1
Ausgangsgraph:
Unklassifizierter Pfeil von 1 nach 3
Unklassifizierter Pfeil von 1 nach 5
Unklassifizierter Pfeil von 1 nach 6
Unklassifizierter Pfeil von 2 nach 3
Unklassifizierter Pfeil von 2 nach 7
Unklassifizierter Pfeil von 3 nach 2
Unklassifizierter Pfeil von 3 nach 4
Unklassifizierter Pfeil von 4 nach 6
Unklassifizierter Pfeil von 5 nach 4
Unklassifizierter Pfeil von 5 nach 7
Unklassifizierter Pfeil von 6 nach 5
Baum nach Tiefensuche bei Knoten 1:
Baumpfeil von 1 nach 3
Vorwaertspfeil von 1 nach 5
Vorwaertspfeil von 1 nach 6
Rueckwaertspfeil von 2 nach 3
Baumpfeil von 2 nach 7
Baumpfeil von 3 nach 2
Baumpfeil von 3 nach 4
Baumpfeil von 4 nach 6
Rueckwaertspfeil von 5 nach 4
Seitwaertspfeil von 5 nach 7
Baumpfeil von 6 nach 5
DFBI: 0 1 3 2 5 7 6 4
DFEI: 9 7 2 6 5 3 4 1
Danke für eure hilfe
matheja
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:21 Mo 21.06.2010 | Autor: | felixf |
Hallo!
> Guten Abend, leute ich brauch hilfe bei dieser Aufgabe:
> Gegeben ist vollgender Java-Quell-code der ausgefüllt
> werden soll:
>
> [viel Zeug]
>
> Danke für eure hilfe
Was genau willst du nun von uns? Das wir die Aufgabe fuer dich erledigen? Oder hast du konkrete Fragen?
LG Felix
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 23:30 Mo 21.06.2010 | Autor: | matheja |
Aufgabe | Ne sorry, vll hab ich mich ein wenig unglücklich ausgedrückt,
ich hab was ich kann hinzugefügt,
|
nun frag ich euch ob ihr nicht weiter helfen könnt,
eine lösung wär toll,
aber ich weiß dass das unverschämt von mir ist, nochmals sorry,
eine konkrete frage habe ich nicht, ich habe nur probleme die methodenrümpfe bzw. die kommentare mit programminhalt zu füllen.
die theorie der tiefensuche habe ich verstanden,
dass dann zu programieren ist was anderes
nochmals sry und danke für hilfe
matheja
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 00:20 Do 24.06.2010 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|