Doppelt verkette Listen

Status
Nicht offen für weitere Antworten.
I

info

Gast
Bei doppelt verketteten Listen enthält jedes Element einen Verweis auf seinen Vorgänger und seinen Nachfolger. Eine solche Liste von int-Werten soll in Form der Klassen DVListe und Element realisiert werden. Die Liste soll als Ring angeordnet sein, der über ein Anker-Element erreichbar ist:


dvlisten.gif


// fügt ein neues Element mit dem gegebenen Wert
// hinter dem gegebenen Element in den Ring ein
void einfuegenNach(Element e, int wert) { ... }
// löscht das Element aus dem Ring
// (Der Anker darf nicht gelöscht werden.)
void loeschen(Element e) { ... }


Implementieren Sie die Methoden einfuegenNach und loeschen.

Code:
class DVListe {
    final Element anker;
    DVListe(){ 
        anker = new Element();
        anker.vor = anker;
        anker.nach = anker;
        }
     void einfuegenNach(Element e, int wert) { ... }
     void loeschen(Element e) { ... }



}

class Element {
    int wert;
    Element vor, nach;
    Element(int x, Element prev, Element next) {
        wert = x;
        vor = prev;
        nach = next;
    }
    Element(){}
}

Ich habe leider keine Ahnung wie ich ich die einfuegen und loeschen programmieren soll. Kann mir da einer helfen? Danke im Voraus![/img]
 

nollario

Bekanntes Mitglied
habs nicht getestet, aber so grob müsste das gehen: :)


einfuegen nach:

Code:
einfuegenNach(Element vorElement, int wer)
{
      // vorheriges Element bekannt: newElement, nachfolgendes:
      Element nachElement = vorElement.nach;

       // Konstruktor:
       Element newElement = new Element(wert, vorElement, nachElement);
       
       // jetzt die alten auch aktualisieren
       vorElement.nach = newElement;
       nachElement.vor = newElement;
}

löschen:

Code:
loeschen(Element e)
{
        // klingt grausam, ist aber halt doppelte verkettung;
        e.vor.nach = e.nach;
        e.nach.vor = e.vor;

        e = null;
}
 
G

Guest

Gast
Super, vielen Dank! Darauf wäre ich irgendwie nicht gekommen :) Kompilieren funktioniert. Nur habe ich jetzt ein Problem ein Element einzufügen: Ich habe das so versucht: bei einfuegen... DVListe.anker und den Wert 3. Da meldet mir mein Programm: "non-static variable anker cannot be referenced from a static context" So sieht der Code momentan aus:

Code:
public class DVListe {
    final Element anker;
    DVListe(){ 
        this.anker = new Element();
        this.anker.vor = anker;
        this.anker.nach = anker;
    }
   void einfuegenNach(Element vorElement, int wer) { 
      // vorheriges Element bekannt: newElement, nachfolgendes: 
      Element nachElement = vorElement.nach; 

       // Konstruktor: 
       Element newElement = new Element(wer, vorElement, nachElement); 
        
       // jetzt die alten auch aktualisieren 
       vorElement.nach = newElement; 
       nachElement.vor = newElement; 
   }
   void loeschen(Element e) { 
        // klingt grausam, ist aber halt doppelte verkettung; 
        e.vor.nach = e.nach; 
        e.nach.vor = e.vor; 
        e = null; 
   }
    
}

class Element {
    int wert;
    Element vor, nach;
    Element(int x, Element prev, Element next) {
        wert = x;
        vor = prev;
        nach = next;
    }
    Element(){}
}
[/code]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M doppelt verkettete Listen Allgemeine Java-Themen 2
N warum wird es doppelt ausgegeben Allgemeine Java-Themen 6
P Erstelltes Programm ist doppelt so groß Allgemeine Java-Themen 11
S If-Menü wird doppelt ausgegben Allgemeine Java-Themen 4
D "Paste" String doppelt Allgemeine Java-Themen 14
D Methoden Buttons erscheinen doppelt nach Wiederholung in Schleife Allgemeine Java-Themen 1
Sin137 Interface Eingabe wird doppelt angezeigt Allgemeine Java-Themen 2
O Sax-Parser ließt XML-File doppelt Allgemeine Java-Themen 1
J Fragen zu generischer doppelt verketteter Liste (bei fehlendem Grundverständnis) Allgemeine Java-Themen 1
Z Sortiertes Einfügen in doppelt verkettete Liste Allgemeine Java-Themen 5
R doppelt verkettete Liste: Fehler beim Einfügen Allgemeine Java-Themen 3
chik Doppelt verkettete Liste bzw. Zirkulärliste (kleiner Fehler, den ich nicht finde) Allgemeine Java-Themen 4
N Fehler abfang läuft doppelt durch Allgemeine Java-Themen 2
ARadauer Random keine Zahlen doppelt Allgemeine Java-Themen 4
L Doppelt Verkettete Listen Allgemeine Java-Themen 6
M Alles doppelt in Eclipse syntaxhilfe Allgemeine Java-Themen 6
F Doppelt verkettete Liste sortieren? Allgemeine Java-Themen 8
M doppelt verkettete Listen? Allgemeine Java-Themen 5
C Vier Stellen Keine Doppelt (Zufall) Allgemeine Java-Themen 20
G Array doppelt verkettet? Allgemeine Java-Themen 6
L doppelt gelinkte liste /getFirst/removeFirst/clear/Remove Allgemeine Java-Themen 2
S Thread wird nach erneutem Instanzieren doppelt gestartet!? Allgemeine Java-Themen 4
J Doppelt verkettete Liste Allgemeine Java-Themen 6
D Zwei Listen vergleichen Allgemeine Java-Themen 7
L Listen Allgemeine Java-Themen 3
F Verständnisprobleme Aufgabenstellung Aktionsobjekte und generische Listen Allgemeine Java-Themen 1
E Listen in Java aneinanderfügen, subtrahieeren usw. Allgemeine Java-Themen 14
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
J Mit Referenzen verkettet Listen. Allgemeine Java-Themen 9
S Intressante Benchmark-Ergebnisse mit Listen. Weiss jemand wie man diese erklaeren kann? Allgemeine Java-Themen 15
D Best Practice Die niedrigste Differenz zwischen zwei Listen ermitteln. Allgemeine Java-Themen 10
F Listen - Mehrere Objekte Allgemeine Java-Themen 1
P Listen sortieren Allgemeine Java-Themen 1
RalleYTN Collections Verständnisfrage zu Objektreferenzen in Listen Allgemeine Java-Themen 5
C Listen Allgemeine Java-Themen 1
M liste von listen anders ausgeben Allgemeine Java-Themen 1
W Sortierte Listen - Methode suchen Allgemeine Java-Themen 17
W Sortierte Listen mit Polymorphismus Allgemeine Java-Themen 6
J Rekursion oder Iteration - verkettete Listen Allgemeine Java-Themen 8
S Permutation und Listen Allgemeine Java-Themen 2
P Doppeltverkettete Listen + Text Allgemeine Java-Themen 5
A Java Projekt (Daten Eingeben, Speichern und in Listen Ausgeben) Allgemeine Java-Themen 6
F JAXB / Listen durchlaufen Allgemeine Java-Themen 17
T Drucken von variabel langen Listen (es kommen nur leere Seiten raus) Allgemeine Java-Themen 2
F Vergleich zweier Listen Allgemeine Java-Themen 4
T Synchronisation von Listen bei Zugriffen durch mehrere Prozesse Allgemeine Java-Themen 15
D variabler Listen name Allgemeine Java-Themen 3
V Drucken von Listen Allgemeine Java-Themen 6
S Doppelte Werte in Listen,Vectoren etc suchen Allgemeine Java-Themen 2
L verkettete Listen oder Arrays + Indexlisten effizienter? Allgemeine Java-Themen 3
M Addieren von Listen Allgemeine Java-Themen 2
F Objekte oder besser ID in Listen speichern? Allgemeine Java-Themen 2
S Mehrere Listen ineinander verschachteln Allgemeine Java-Themen 22
S Alle Elemente von zwei Listen vergleichen Allgemeine Java-Themen 10
R Objektsynchronisierung zweier Listen?!?! Allgemeine Java-Themen 2
H Listen Allgemeine Java-Themen 5
G Datenstruktur: LISTEN Allgemeine Java-Themen 7
J Verschachtelte ListIteratoren um in zwei Listen hin und herzugehen Allgemeine Java-Themen 5
C Problem Methoden, Klassen, Listen Allgemeine Java-Themen 27
K Listen,Bäume,Mengen Allgemeine Java-Themen 3
S Hinzufügen von Elementen zu Listen Allgemeine Java-Themen 4
A zwei listen vergleichen und unterschiede anzeigen Allgemeine Java-Themen 3
D Listen / Datenstrukturen und ein blutiger Anfänger Allgemeine Java-Themen 7
J Zwei sortierte Listen zusammenfassen Allgemeine Java-Themen 8
T Problem mit Listen Allgemeine Java-Themen 8
B binarysearch bei listen mit klassen Allgemeine Java-Themen 4
F Problem mit Java Listen Allgemeine Java-Themen 4
D Listen von Generischen Typen inkl. Vererbung Allgemeine Java-Themen 2
C Listen in Java. Anehängter Code nicht ganz klar Allgemeine Java-Themen 19
E Verkettete Listen Allgemeine Java-Themen 5
M objekt mit listen Allgemeine Java-Themen 5
G Domainen crawlen & Domainnamen listen -> LANGSAM! Allgemeine Java-Themen 19
M Listen Problem! Allgemeine Java-Themen 26
M Serialisierte listen ausgeben? Allgemeine Java-Themen 6
F 2 Varianten für synchronisierten Zugriff auf Listen Allgemeine Java-Themen 2
L Welche Collection ist die richtige ? Listen mergen Allgemeine Java-Themen 3
G Synchronisierte Listen. ein Graus Allgemeine Java-Themen 4
M Verknüpfung von Listen Allgemeine Java-Themen 3
S Frage zu ArrayList mit Listen Allgemeine Java-Themen 8
S Fragen zu 4 speziellen Listen Allgemeine Java-Themen 4
D Listen Allgemeine Java-Themen 4
M sortierte listen Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben