• Keine Ergebnisse gefunden

Übung 1: Verkettete ListeAbgabetermin: 11.03.2014

N/A
N/A
Protected

Academic year: 2022

Aktie "Übung 1: Verkettete ListeAbgabetermin: 11.03.2014"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Übung Praktische Informatik 2 SS 2014

Übung 1: Verkettete Liste

Abgabetermin: 11.03.2014

Name: ________________________________________ Matrikelnummer: ________________

Gruppe:

G1 Di 10:15

G2 Di 11:00

G3 Di 12:45

Aufgabe Punkte gelöst abzugeben

schriftlich abzugeben

elektronisch Korr. Punkte

Aufgabe 1 24Java-Programm

Testfälle und Ergebnisse Java-Programm

Aufgabe 1: Doppelt verkettete Liste (24 Punkte)

Implementieren Sie eine doppelt verkettete Liste für Objekte in der Klasse LinkedList. Die Schnittstelle ist durch die abstrakte Klasse List gegeben (für Methodenbeschreibungen siehe Java-Dokumentation in der Vorgabedatei).

package at.jku.ssw;

public abstract class List {

public abstract void insert(int index, Object value);

public abstract void insertLast(Object value);

public abstract Object get(int index);

public abstract int indexOf(Object value);

public abstract int lastIndexOf(Object value);

public abstract Object remove(int index);

public abstract void removeLast();

public abstract int size();

public abstract Iterator iterator();

}

public abstract class Iterator { public abstract boolean hasNext();

public abstract Object next();

}

Implementieren Sie die Klassen LinkedList und LinkedListIterator im Paket at.jku.students. Verwenden Sie dazu die Klassen List, Iterator und ListNode aus der Vorgabedatei.

package at.jku.students;

public class LinkedList extends List { ListNode head;

ListNode tail;

public String makeDot() {

return DotMaker.makeDotForLinkedList(head);

} ...

}

public class LinkedListIterator extends Iterator { ...

}

List l = new LinkedList();

l.insertLast("b");

l.insert(1, "c");

l.insert(0, "a");

l.insertLast("d");

Out.print(l.size() + ":");

Iterator it = l.iterator();

while (it.hasNext()) {

Out.print(" " + it.next());

}

// Ausgabe 4: a b c d Out.open("test.dot");

Out.print(((LinkedList) l).makeDot());

Out.close();

Implementierungshinweise:

 Verwenden Sie die Vorgabedateien ssw-pi2.jar und die Java-Dokumentation von der LVA-Website.

 Verwenden Sie für die Listenknoten die vorgegebene Klasse ListNode.

 Wählen Sie für alle Klassen, Methoden und Felder die geeignete Sichtbarkeiten (private, protected, package, public).

 Methoden mit Index als Parameter liefern eine IndexOutOfBoundsException bei ungültigem Index.

 Verwenden Sie die Methode DotMaker.makeDotForList, um GraphViz-Bilder Ihrer Liste zu erstellen.

Abzugeben ist: Java-Programm, Testfälle und Ergebnisse

test.dot

a b c d

Referenzen

ÄHNLICHE DOKUMENTE

Implementieren Sie eine Zahlenmenge mit Hilfe einer linearen Liste (Hinweise: Ein Menge enthält niemals mehrere Exemplare der

Skizziere an einem Beispiel, welche Zeiger beim Einf¨ ugen eines neuen Elementes in eine bereits vorhandene Liste in welcher Form umgeh¨ angt werden

Die folgenden Fragen beziehen sich immer auf eine einfach verkettete, sortierte Liste oder deren Elemente.. Wie viele Nachfolger hat

1) Einfügen eines neuen Knotens: Liste war leer.. Grafische Darstellung einer verketteten Liste:3. 2) Einfügen eines neuen Knotens am Anfang.. Grafische Darstellung einer

Implementieren Sie die erweiterte Schnittstelle List durch eine verkettete Liste}. Die Strukturinvariante Ihrer Implementierung soll analog zur obigen Strukturinvariante sein, aber

• Im Gegensatz zu einfach verketteten Listen haben doppelt verkettete Listen in den Knoten eine zusätzliche Instanzvariable für die Referenz auf den Vorgängerknoten. class Node

Wenn als letztes ein Element auf Stack gepusht wurde, ist dieser nicht

struct dolili *elem_ptr = NULL; // Erzeugen eines Zeigers auf ein Element der Liste Damit Sie dynamisch neue Elemente einer Liste hinzufügen können, müssen Sie einen Teil des