Seiteneffekte

B

Bohnensack

Gast
Hallo,

ich habe einen Graphen vorgegeben (also Knoten mit bestimmten Verbindungen). Die nötigen Informationen sind in einem ArrayList gespeichert, welches mit "static private" deklariert ist.
In der Klasse befinden sich verschiedene Methoden. DIe Aufgabenstellung schreibt nun vor, Seiteneffekte zu vermeiden.
Ich habe in meinem Programm (für den Graph soll eine Tiefensuche durchgeführt werden), die Elemente der ArrayLists verändert (auf -1 und -2 gesetzt).
Nun ist meine Frage, ob dies mit Seiteneffekte gemeint ist oder ob das in Ordnung ist.
 

turtle

Top Contributor
Das ist aus den wenigen Informationen nicht beantwortbar.

Wundern tut mich allerdings, warum du beim Graphendurchlauf die Attribute änderst?

Wenn das so die gestellte Aufgabe ist, geht das in Ordnung.

Gemeint ist wohl auch mehr dass dein Code den Graphen verändert also Knoten/Kanten einfügst/löscht. Das wären unerwünschte Seiteneffekte.
 
B

Bohnensack

Gast
In unserer Vorlesung haben wir sogar einen Algorithmus bekommen:
Java:
setze alle Knoten auf weiss;
while (es gibt einen weissen Knoten x) {
setze x auf gelb;
depthFirstSearch(x);
}
void depthFirstSearch(Knoten x) {
foreach (Nachbarknoten y, der noch weiss ist) {
setze y auf gelb;
depthFirstSearch(y);
}
setze x auf rot;
}

Ich habe nun das "setze alle Werte auf weis" interpretiert als, nichts machen. Auf Gelb setzen habe ich in Java als, "verändere das Element in ArrayLists auf -1". Auf Rot setzen bedeutet dann, dass ich die Elemente auf -2 setze.

Nach dem Durchlauf ist also die ArrayList komplett verändert und jedes Element beträgt -2.
 

turtle

Top Contributor
Das ist kein Seiteneffekt.

Du kannst aber dein Programm konformer zur Aufgabe machen, indem du java.awt.Color verwendest. Dann ist WHITE wirklich weiss und YELLOW ist (?) na yellow und RED gibts natürlich auch und man muss nicht wissen das -2=RED bedeutet.

PS:
Nach dem Durchlauf ist also die ArrayList komplett verändert und jedes Element beträgt -2.
Das verstehe ich anders;)
Ohne mir den Algorithmus genauer angesehen zu haben, sollte die Wurzel wohl rot sein und alle Knoten darunter gelb, oder?
 
Zuletzt bearbeitet:
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben