• Keine Ergebnisse gefunden

Übung 1: Verkettete Liste

N/A
N/A
Protected

Academic year: 2022

Aktie "Übung 1: Verkettete Liste "

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Übung Praktische Informatik 2 SS 2016

Übung 1: Verkettete Liste

Abgabetermin: 15.03.2016

Name: __________________________________________ Matrikelnummer: ________________

Gruppe: G1 Di 10:15-11:00 G2 Di 11:00-11:45 G3 Di 12:45-13:30

Aufgabe Punkte gelöst abzugeben

schriftlich

abzugeben elektronisch

Korr. Punkte

Aufgabe 1 24 Java-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 idx, Object val);

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 Vorgabedatei pi2_ue1.jar.

Verwenden Sie für die Listenknoten die vorgegebene Klasse ListNode (Teil von pi2_ue1.jar).

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 (Teil von pi2_ue1.jar), um GraphViz-Bilder Ihrer Liste zu erstellen.

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

Referenzen

ÄHNLICHE DOKUMENTE

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

• 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

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

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

Und dieses Prinzip soll auch noch funktionieren, wenn wir ein Programm haben, das ein paar Gigabyte Platz ben¨otigt und es tausende von freien Bl¨ocken gibt, die aber sehr klein

… für je ein Vorbereitungsverfahren aus jeder Gruppe ein Anwendungsbeispiel