Programmierung Generics und Graphen Goedicke
Programmierung: Übungsblatt 12 – Generics und Graphen
Aufgabe 1
1.
Generics dienen als Platzhalter, die später gefüllt werden können. Sie bieten die Möglichkeit zur Konstruktion wiederverwendbarer und typensicherer Datenstrukturen.
2.
Ein Vorteil von spezifischen Datentypen gegenüber der Verwendung von raw type ist zum einen, dass es lesbarer ist, da ersichtlich ist, was in einer Liste erhalten ist und zum anderen, dass auf Typecast verzichten kann, da Compiler der Objekttyp bereits bekannt ist.
3.
Beim Durchlaufen darf die Liste nicht verändert werden, v. a. durch Löschung.
4.
Ein Zyklus in einem Graph ist der Pfad von einem Knoten zu sich selbst, im Zweifel ein Kreis über andere Knoten, sodass man ihn jederzeit durchlaufen könnte.
Aufgabe 2
→Rest aus Übung 11 nehmen
public enum Genre {
ACTION, DRAMA, FANTASY, HORROR, ROMANCE, SCIFI, THRILLER, WESTERN }
import java.util.Iterator;
class ListIterator
Node
// Zum Start sollte current der Head der Liste zugewiesen werden
public ListIterator(UnsereListe
}
@Override
public boolean hasNext() { if (current != null)
return true; return false;
}
@Override
public T next() {
T nutzlast = current.getPayload(); current = current.getNext();
return (nutzlast); }
}
public class Movie implements Comparable
private Genre genre;
Seite 1 von 3
Programmierung Generics und Graphen Goedicke
private String name;
public Movie(int year, Genre genre, String name) { this.year = year;
this.genre = genre;
this.name = name;
}
public String getName() { return name;
}
public int getYear() { return year;
}
public Genre getGenre() { return genre;
}
@Override
public int compareTo(Movie o) {
if (this.year < o.year) { return -1;
}
if (this.year > o.year) {
return 1; }
int value = this.genre.compareTo(o.genre); if (value != 0) {
return value; }
return this.name.compareTo(o.name); }
}
public class Node
Node
// Node
T payload;
public Node(T payload) { this.payload = payload;
}
public Node
}
public void setNext(Node
}
/* public Node
return this.previous;
}
public void setPrevious(Node
this.previous = previous;
} */
public T getPayload() { return this.payload;
}
Seite 2 von 3
Programmierung
Generics und Graphen
Goedicke
public void setPayload() { this.payload = payload;
} }
import java.util.Iterator;
class UnsereListe
Node
public void add (T nutzlast) { Node
tail=node;
head=node; }
else { tail.setNext(node); tail = node;
} }
public Iterator
return new ListIterator
public Node
}
public Node
} }
Seite 3 von 3
Powered by TCPDF (www.tcpdf.org)