Doppelt gekettete Listen

bvdcomp

Aktives Mitglied
Hallo zusammen

Ich soll unten stehende Aufgabe lösen:
Imlementieren Sie eine gekettete Liste mit den Methoden size(), get(), set(),add() und iterator(); verwenden sie dabei diese Vorlage und vervollständigen Sie die fehlenden Teile

Java:
import java.util.Iterator;
/**
 * Einfache Implementierung einer doppelt geketteten Liste. Implementieren Sie
 * alle Methoden, die ein TODO enthalten.
 * 
 * @param <E>
 *            Typ der Listenelemente
 */
public class DoubleLinkesList<E> implements Iterable<E>
{
    /** Anker der Liste */
    private Node<E> anchor;
    
    /** Optimierung für Länge der Liste. */
    private int size = 0;
    
    /** Konstruktor für neue Liste */
    public DoubleLinkesList()
    {
        anchor = new Node<E>();
        anchor.pre = anchor;
        anchor.succ = anchor;
    }
    
    /**
     * @return Anzahl Elemente der Liste
     */
    // Ändern Sie diese Methode nicht, sondern führen Sie den Wert von size immer nach, wenn er geändert werden muss.
    public int size()
    {
        return size;
    }
    
    /**
     * Hilfsmethode, die den Knoten an der vorgegebenen Stelle zurück gibt.
     * @param index
     * @return Knoten mit gegebenem Index.
     * @throws IndexOutOfBoundsException
     */
    // Diese Methode kann in der Implementierung der meisten anderen Methoden verwendet werden.
    private Node<E> nodeAt(int index)
    {
        // TODO
        return null;
    }
    
    /**
     * @param index
     * @return Element mit gegebenem Index
     * @throws IndexOutOfBoundsException
     */
    public E get(int index)
    {
        // TODO
        return null;
    }
    
    /**
     * Setzt den Wert einens Listenelementes neu.
     * @param index
     * @param newValue Neuer Wert
     * @return Alter Wert mit dem gegebenen Index
     * @throws IndexOutOfBoundsException
     */
    public E set(int index, E newValue)
    {
        // TODO
        return null;
    }
    
    /** 
     * Hilfsmethode: Setzt einen neuen Knoten vor einen bestehenden Listenknoten ein. 
     * @param node Ein bestehender Listenknoten oder anchor;
     *             im Falle von anchor wird der Knoten am Ende der Liste eingefügt.
     * @param newValue Wert des neuen Listenelements
     */
    private void insertBefore(Node<E> node, E newValue)
    {
        // TODO
    }
    
    /**
     * Fügt ein neues Listenelement an der vorgegebenen Stelle ein.
     * @param index 
     * @param newValue Wert des neuen Listenelements.
     */
    public void add(int index, E newValue)
    {
        Node<E> node = index == size ? anchor : nodeAt(index);
        insertBefore(node, newValue);
    }
    
    /**
     * Entfernt vorgegebenen Knoten aus der Liste
     * @param node Existierender Knoten der Liste.
     * @return
     */
    private void removeNode(Node<E> node)
    {
        // TODO
    }
    
    /**
     * Entfernt Element an vorgegebener Stelle.
     * @param index
     * @return Wert des 
     */
    public E remove(int index)
    {
        Node<E> node = nodeAt(index);
        removeNode(node);
        return node.value;
    }
    
    /**
     * @return Iterator für die Liste.
     */
    public Iterator<E> iterator()
    {
        return new DLLIterator();
    }
    
    // Other methods
    
    /**
     * (Statische) Klasse für Knoten der Liste.
     */
    private static class Node<E>
    {
        E value;
        Node<E> pre;
        Node<E> succ;
    }
    
    /**
     * Iterator für gekettete Listen.
     */
    private class DLLIterator implements Iterator<E>
    {
        
        public boolean hasNext()
        {
            // TODO
            return false;
        }
        
        public E next()
        {
            // TODO
            return null;
        }
        
        /**
         * Entfernt das zuletzt durch next() aufgerufene Element aus der Liste.
         * @throws IllegalStateException wenn next noch nie aufgerufen wurde oder wenn
         *     diese Methode schon einmal aufgerufen wurde nach dem letzten Aufruf von next().
         */
        public void remove()
        {
            // TODO
        }
        
    }
}

Ich verstehe und weis was eine doppelt gekettete Liste, in der Theorie, aber ich komme nicht ganz draus wo ich anfangen soll und vorallen wie??:autsch:
 

bvdcomp

Aktives Mitglied
Da brauche ich dann sowas hier?
Java:
try
    {
      ...
    }

    catch (IndexOutOfBoundsException ex )
    {
      ... 
    }
return index; //->Type mismatch: cannot convert from int to DoubleLinkesList.Node<E>

Wie gehts nun weiter??
 
G

Gast2

Gast
Nein, das ist so falsch.
Die Doku sagt dass du eine IndexOutOfBounds werfen und nicht innerhalb schon behandeln sollst.

Die Methode müsste also in etwa sowas machen:
- prüfen ob der Index gültig ist
- wenn nicht dann IndexOutOfBounds werfen
- wenn gültig, dann den Knoten suchen und zurückgeben.
 

fastjack

Top Contributor
Mal Dir die Zustände der Listen mit Papier und Bleistift auf. Kreise sind Element, Pfeile sind Zeiger. Du hast dann eigentlich immer ein genaues Bild davon, was Du programmieren mußt und wirst auch keinen Zeiger "vergessen".
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Doppelt verkette Liste Element löschen Java Basics - Anfänger-Themen 15
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
I Input/Output Code wird doppelt ausgeführt Java Basics - Anfänger-Themen 3
N package wird doppelt im exporer angezeigt Java Basics - Anfänger-Themen 2
A Doppelt verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 17
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
D Doppelt Verkettete Zirkular-Liste Java Basics - Anfänger-Themen 1
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 8
scratchy1 doppelt verkettete Liste testen Java Basics - Anfänger-Themen 8
T Löschen in doppelt verketteter Liste Java Basics - Anfänger-Themen 1
L Input/Output Println wird doppelt ausgeführt Java Basics - Anfänger-Themen 11
D Interface Frame doppelt durch Aufruf der GUI Klasse Java Basics - Anfänger-Themen 1
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
M Liste Implementation, doppelt next() Java Basics - Anfänger-Themen 13
D Klassen Doppelt so viele Elemente in Arraylist ? Java Basics - Anfänger-Themen 4
B Doppelt Verkettete Liste - Ist alles gut so? Java Basics - Anfänger-Themen 3
Salo Datentypen "Doppelt" List(e) ("gesucht") Java Basics - Anfänger-Themen 6
L do-while-Schleife läuft doppelt, try catch fehler Java Basics - Anfänger-Themen 12
U Datentypen Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 13
J Methoden Doppelt verkettete Liste remove(Object) Java Basics - Anfänger-Themen 8
B OOP Über eine doppelt verkettete Liste iterieren Java Basics - Anfänger-Themen 4
L Doppelt verkettete Liste Java Basics - Anfänger-Themen 6
T Java Methode wird unerwünscht doppelt aufgerufen?! Java Basics - Anfänger-Themen 4
R doppelt verkettete Liste aus Arrays erstellen Java Basics - Anfänger-Themen 1
OnDemand Doppelt Werte CSV Java Basics - Anfänger-Themen 2
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
S Doppelt verkettete Liste Java Basics - Anfänger-Themen 3
N Erste Zeile bei BufferedReader doppelt lesen? Java Basics - Anfänger-Themen 2
E Erste Schritte Sortieren von Objekten in doppelt-verlinkter Liste Java Basics - Anfänger-Themen 9
G Doppelt Verkettete Liste Java Basics - Anfänger-Themen 2
A Doppelt Verkettete Liste Java Basics - Anfänger-Themen 16
E doppelt verkettete liste Java Basics - Anfänger-Themen 10
S Methoden Methode wird doppelt aufgerufen ... Java Basics - Anfänger-Themen 5
J Mehrere Zufallszahlen erzeugen, aber keine darf doppelt erzeugt werden - Wie? Java Basics - Anfänger-Themen 5
E Datentypen Doppelt verkettete Liste Java Basics - Anfänger-Themen 10
P Einfügen in doppelt verkettete Liste Java Basics - Anfänger-Themen 7
S Queue als doppelt verkettete Liste Java Basics - Anfänger-Themen 2
N doppelt verkettete liste einfügen Java Basics - Anfänger-Themen 7
K Datentypen Einfach/Doppelt verkettete Liste Java Basics - Anfänger-Themen 4
W Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 2
T Klasse in Java für doppelt verkettete Listen Java Basics - Anfänger-Themen 4
G PropertyChangeListener empfängt Events doppelt Java Basics - Anfänger-Themen 5
G Doppelt verkettete, generische Liste Java Basics - Anfänger-Themen 11
L doppelt verkette Liste Java Basics - Anfänger-Themen 5
H Fenster doppelt gezeichnet. Java Basics - Anfänger-Themen 2
G Einfügen aus Zwischenablage - alles doppelt? Java Basics - Anfänger-Themen 2
G JFileChooser kommt doppelt Java Basics - Anfänger-Themen 3
D doppelt verkettete Liste Java Basics - Anfänger-Themen 16
S Doppelt Verkettete Liste Java Basics - Anfänger-Themen 7
N Nullpointerexception bei Doppelt verketteter Liste Java Basics - Anfänger-Themen 7
M Listen richtig doppelt verkettet? Java Basics - Anfänger-Themen 13
D Exceptions in doppelt verketteter Liste Java Basics - Anfänger-Themen 5
C verify() wird doppelt aufgerufen (JTable + InputVerifier) Java Basics - Anfänger-Themen 8
M Doppelt verkettete Liste Zeiger Vorgänger beim Einfügen Java Basics - Anfänger-Themen 2
J doppelt verkettete Liste Java Basics - Anfänger-Themen 5
L doppelt verkettete Liste Java Basics - Anfänger-Themen 6
H doppelt verkette liste Java Basics - Anfänger-Themen 2
L rückwärtsausgeben einer doppelt verketteten liste Java Basics - Anfänger-Themen 2
G JList und ListCellRenderer - Vector erscheint doppelt Java Basics - Anfänger-Themen 6
G JComboBox gibt SelectedItem immer doppelt aus Java Basics - Anfänger-Themen 4
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 12
B Doppelt verkettete Liste Java Basics - Anfänger-Themen 16
B Array doppelt Felder löschen Java Basics - Anfänger-Themen 27
M Code wird doppelt ausgeführt Java Basics - Anfänger-Themen 2
R Datentyp Ring - zyklisch doppelt verkettete Liste - HILFE! Java Basics - Anfänger-Themen 12
H Doppelt verkettete Listen Java Basics - Anfänger-Themen 2
S doppelt verkettete Listen Java Basics - Anfänger-Themen 4
X Vererbung: Doppelt verkettete Listen Java Basics - Anfänger-Themen 16
R Zeilen aus datei lesen + doppelt gespeichert? Java Basics - Anfänger-Themen 3
R doppelt verkettete Liste Java Basics - Anfänger-Themen 8
F doppelt verkettete liste! Java Basics - Anfänger-Themen 8
R doppelt verkettete azyklische Liste Java Basics - Anfänger-Themen 2
G Trotz Abfrage immer noch Zahlen doppelt Java Basics - Anfänger-Themen 3
R Benutzerregistrierung: Doppelt registriert. Java Basics - Anfänger-Themen 8
D Listen in Listen in Listen ... ??? Java Basics - Anfänger-Themen 2
XWing listen Java Basics - Anfänger-Themen 7
FunkyPhil94 addLast und addFirst bei Listen Java Basics - Anfänger-Themen 6
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
S Lineare listen verkettung Java Basics - Anfänger-Themen 7
S Listen Java Basics - Anfänger-Themen 12
S Listen , Nodes am ende anängen Java Basics - Anfänger-Themen 6
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
M Java Listen Java Basics - Anfänger-Themen 4
V einfach verkettete Listen Java Basics - Anfänger-Themen 10
A PhoneBook mit verketteten listen Java Basics - Anfänger-Themen 48
F ich brauche Hilfe bei Listen Java Basics - Anfänger-Themen 13
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
G Java Listen und Iterator Java Basics - Anfänger-Themen 2
S Erklaerung Listen Java Basics - Anfänger-Themen 27
J Implementierung Listen-ADT Java Basics - Anfänger-Themen 131
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
L Skip Listen Java Basics - Anfänger-Themen 5
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben