CS计算机代考程序代写 Java compiler Programmierung Generics und Graphen Goedicke

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 implements Iterator {
Node current;
// Zum Start sollte current der Head der Liste zugewiesen werden
public ListIterator(UnsereListe unsereListe) { current = unsereListe.getHead();
}
@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 int year;
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 next;
// Node previous;
T payload;
public Node(T payload) { this.payload = payload;
}
public Node getNext() { return this.next;
}
public void setNext(Node next) { this.next = next;
}
/* public Node getPrevious() {
return this.previous;
}
public void setPrevious(Node previous) {
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 implements Iterable {
Node head, tail;
public void add (T nutzlast) { Node node =new Node<>(nutzlast); if(head==null) {
tail=node;
head=node; }
else { tail.setNext(node); tail = node;
} }
public Iterator iterator() {
return new ListIterator(this); }
public Node getHead() { return head;
}
public Node getTail() { return tail;
} }
Seite 3 von 3
Powered by TCPDF (www.tcpdf.org)