![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
Hallo Leutz!!! Ich habe folgendes: Ich möchte aus einer doppelt verketteten Liste alle Elemente löschen, deren boolean Variable selected==true ist. Die Liste kann 0,1,2,3,...,n Elemente enthalten. Und es können 0,1,2,3,...,n Elemente mit selected == true sein (maximal alle, minimal keiner). Leider Schaffe ich nicht alle Möglichkeiten abzufangen und lande ständig in der unendlichen Schleife. Kann mir bitte jemand helfen. Ein paar Infos zu den Klassen: Class Elem: PHP-Code: PHP-Code: Taik |
|
| | Nach oben #2 |
| Erfahrener Benutzer Registriert seit: 29.05.2004
Beiträge: 228
|
Ungetesteter Code: Code: public void remove() {
prev->next = next;
next->prev = prev;
}
Code: public void removeSelected() {
Elem e = this;
while (e->prev != null) {
e = e->prev;
if (e->getSelected())
e->remove();
}
e = this;
while (e != null) {
if (e->getSelected())
e->remove();
e = e->next;
}
}
Generell finde ich verkette Listen eher blöd - der Verwaltungsaufwand ist recht hoch. In den meisten Fällen fährst du mit etwas Speicherblockbasiertem (Array bzw. darauf aufbauend Vector/ArrayList) besser als mit einer verketteten Liste. MfG Peschmä
__________________ Amazon.de | The Java Trap | Freie Software | Freie Software vs. Open Source | GNU Classpath | GCJ | SableVM "We should forget about small efficiencies, say about 97% of the time: Premature optimization is the root of all evil." - Donald Knuth |
| | |
| | Nach oben #4 |
| Gast
Beiträge: n/a
|
Wenn die Gefahr besteht, die Liste zu Verlieren, wenn man irgendwas ander Liste ändert, wäre dann denn sinnvoll sie als bestand einer Programmiersprache aufzunehmmen? Java hat ja so was ähnliches. Oder irre ich mich da? So weit war ich schon mal mit dem Code und habe ständig NullPointerException bekommen oder bin der Unendlichschleife gelandet. Klar ist der Aufwand etwas größer als bei einer Vorgegebenen Klasse aber es dient besserem Verständniss, wie die Listen allgemein funktionieren. Oder sehe ich es falsch?! Gruß Taik |
|
| | Nach oben #5 |
| Benutzer Registriert seit: 08.02.2005 Ort: Wien
Beiträge: 85
|
So hab ich es bei meiner DLL, die ich mal zu Lernzwecken selbst programmiert habe. Code: public void remove(Elem elem)
{ elem.prev.next = elem.next;
elem.next.prev = elem.prev;
}
__________________ Kosmetik Hobby |
| | |
| | Nach oben #6 |
| Gast
Beiträge: n/a
|
Ähm leute, ihr habt da alle ein paar gravierende Fehler... prinzipiell funktioniert das hier nicht richtig (man glaubt es nur) elem.prev.next = elem.next; elem.next.prev = elem.prev; hat aber peschmae bereits erwähnt, das problem ist, dass wenn elem.prev null ist, bzw. elem.next null ist hast du hier eine Null Pointer Exception. Beheben kann man das mit einem simplem if... Wenn man jetzt aber ein "LinkList" Objekt hat, dass beispielsweise eine Referenz zu dem ersten und dem Letzten Objekt besitzt (was mitunter ganz praktisch ist) muss man weiterhin aufpassen, denn wenn man das erste oder das letzte element aus der liste wirft, muss man ausserdem die referenz im LinkedList element ändern sonst kann es zu ganz komischen effekten kommen... |
|
| | Nach oben #7 | ||
| Erfahrener Benutzer Registriert seit: 29.05.2004
Beiträge: 228
| Zitat:
Zitat:
Du hast ja zwei Klassen - kein Problem eigentlich. MfG Peschmä
__________________ Amazon.de | The Java Trap | Freie Software | Freie Software vs. Open Source | GNU Classpath | GCJ | SableVM "We should forget about small efficiencies, say about 97% of the time: Premature optimization is the root of all evil." - Donald Knuth | ||
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Liste im IE 6.x & 7.x | Berti | HTML, XML und CSS | 1 | 31.03.2007 13:49 |
| Liste der größten, aktivsten Webseiten/Portale/.. Deutschlands | Ben | Gesuche | 9 | 02.03.2007 21:36 |
| Gemeinschaftsprojekt: Liste interessierter Mitglieder | Ben | Archiv | 0 | 22.01.2006 17:49 |
| Liste mit Objekten einer Klasse nach Property sortieren | Michael.Schmuck | Allgemeine Java-Programmierung | 4 | 22.02.2005 18:26 |
| Listen | Fienchen | Allgemeine Java-Programmierung | 1 | 29.01.2005 18:14 |