doppelt verkette Liste

Status
Nicht offen für weitere Antworten.

loxa789

Mitglied
Hallo:
So ich soll eine DList so verändern (DList ist gegeben) dass:

 Jeder Knoten sowohl einen Schüssel als auch einen Wert beinhaltet.
 Nach einen Wert über einen Schlüssel gesucht werden kann.
 Ein Schüssel mit seinem Wert bei Zugriff an den Anfang der Liste wandert.

Was meint unser Prof. mit Schlüssel?
Ist der Schlüssel der Wert der in den Knoten geschrieben wird?

kann mir einer von euch bitte erklären was ich in etwa machen soll. Bräuchte eine Anleitung (Kochbuch).
programmieren will ich mit etwas hilfe von euch aber selber.
danke loxa789
 
G

Gelöschtes Mitglied 5909

Gast
Ich denke er will ne wart HashMap ohne Hash mechanismus.

Dafür gibst du deinen knoten noch einen key zusätzlich
und 2 methoden (bzw du änderst die alten 2 ab)

Pseudomäßig etwa so

Code:
private static class Node<K, V> {

	public Node(K key, V val) { ... }
	K key;
	V val;
	Node<K,V> next;
	Node<K,V> prev;
}

put (k key, V val) {
	Node<K,V> node = new Node<K,V>(key, val);
	Node<K,V> last = getLast();
	node.next = null;
	node.prev = last;
	last.next = node;   // node ist jetzt last
}

get(K key) {
	// über liste iterieren
	// und schlüssel vergleichen

	Node<K,V> hit = iter.next();	// treffer
	// next, prev umbiegen
	Node<K, V> first = getFirst();
	hit.next = first;
	hit.prev = null;
	first.prev = hit;	// hit ist jetzt first
}

Sinn dabei ist dass wenn der gleiche key mehrmals angefragt ist er ganz vorne bze weiter vorne ist und nicht am ende.
Dadurch muss nicht so oft iteriert werden und der hit kommt schneller.

=> die liste sortiert sich praktisch selbst nach anzahl der "zugriffe" mit den keys
 

loxa789

Mitglied
Hallo!
Leider versteh ichs noch nicht ganz habe drei Klassen DNode DList und meine Testklasse.
Könnt ihr mit Bitte in Grundzügen erklären wie eine DList funktioniert. So wie ich die Dlist versteh braucht jeder Knoten eine Zuweisung zum vorigen und nächsten Knoten. Wie schreibe ich dass ein Knoten mit den String "Hans" auf den ersten und dritten Knoten verweist.
Wenn ich einen neuen Knoten am Anfang er Liste einsetzen will schreibe ich dann dl.pushHead(); aber was schreib ich in die Klammern.
Wie setzte ich Knoten an der xsten Stelle bzw. wie rufe ich sie auf. Geht das einfügen mit dl.insertAt(xsten,"Franz",xsten+1) kann ich auch mit dem Befehl setAt() arbeiten was mach ich mir dem wieso brauch ich in wenn ich insertAt habe.
Muss ich die Anzahl der Knoten wie ein Array[] vorher definieren und fängt die Liste auch bei 0 an.Fragen über Fraben. Leider sind meine Skripten zu diesem Thema sehr dürftig, bzw unversändlich für mich,daher muss ich euch Bitten mir dies zu erklären.
Danke
 

jeansmander

Mitglied
Hallo schreibe das erste mal hier ins Forum. Habe auch mit den Listen so meine Probleme. Könnte jemand die Fragen von Loxa789 beantworten würde mich auch interessieren. Danke Jeans
 
S

SlaterB

Gast
> Könnt ihr mit Bitte in Grundzügen erklären wie eine DList funktioniert.

was eine DList ist weiß niemand, ist wohl kein Fachbegriff in dieser Welt,
oder gehts allgemein um 'doppelt verkettete Listen'?
das gibts ja nun überall nachzulesen, wozu das kopieren?
in einem Satz: einzelne Knoten, die sich gegenseitig referenzieren/ verlinken

> schreibe ich dann dl.pushHead(); aber was schreib ich in die Klammern

von pushHead() hat auch keiner eine Ahnung

> Wie schreibe ich dass ein Knoten mit den String "Hans" auf den ersten und dritten Knoten verweist.

zweier.prev = einser
zweier.next = dreier
+ von einser und dreier aus korrekt auf den neuen zweier verweisen

> Wie setzte ich Knoten an der xsten Stelle bzw. wie rufe ich sie auf.

einfügen so wie der zweier eingefügt wurde,
abfragen indem man die Liste durchläuft und die Position mitzählt

> insertAt()/ setAt()

den Unterschied zwischen diesen beiden Operationen kennt wieder niemand,
ganz grob geschätzt setzt setAt() nur den Wert an Stelle x neu, die Liste bleibt gleich lang, ein alter Wert geht verloren,
insertAt() fügt einen neuen Knoten mit Wert ein

> Muss ich die Anzahl der Knoten wie ein Array[] vorher definieren

nein

> und fängt die Liste auch bei 0 an

es gibt in dem Sinne überhaupt keine Indexe wie bei einem Array aber natürlich ein erstes zweites Element usw. wenn man sie in Reihenfolge nummeriert
(und sei es nur gedanklich)
 

Pappenheimer++

Bekanntes Mitglied
Loxa, du stellst hier Fragen zu einem dir gegebenen Code, den hier noch nie jemand gesehen hat. Woher sollen wir wissen, was in den Methoden, von denen du da redest, drin steht?^^ Prinzipiell funktioniert doch eine LinkedList ganz einfach: In einem DList-Objekt hast du eine Referenz auf den ersten Knoten und eine auf den letzten. Die einzelnen Knoten haben jeweils immer eine Referenz au den direkten Vorgänger und den direkten Nachfolger. Bei den ganzen Such-Lösch oder Einfügoperationen hangelst du dich einfach an den Knoten entlang und biegst Referenzen ggf. um. Der Schlüssel ist einfach ein zusätzliches Attribut eines Knotens, der nur zur Identifikation der Nutzdaten dient, aber das hat mein Vorposter ja schon gezeigt ;)
 
Status
Nicht offen für weitere Antworten.
Ä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
H doppelt verkette liste Java Basics - Anfänger-Themen 2
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
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
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
B Doppelt gekettete Listen Java Basics - Anfänger-Themen 4
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
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
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
thor_norsk Verkette Liste Java Basics - Anfänger-Themen 27
S Einfach verkette Liste Java Basics - Anfänger-Themen 27
C Zyklisch verkette Liste - Pop() methode implementieren Java Basics - Anfänger-Themen 2
C Methoden Einfach verkette Liste - int Werte aufsteigend sortieren Java Basics - Anfänger-Themen 1
H Datentypen Doppelte Verkette Liste - Verständnissproblem Java Basics - Anfänger-Themen 5
C verkette liste sortieren? Java Basics - Anfänger-Themen 7
W Rekursion und verkette Liste Java Basics - Anfänger-Themen 5
I einfach verkette Liste Java Basics - Anfänger-Themen 9
K Verkette Listen Java Basics - Anfänger-Themen 13
K Verkette Listen ? Java Basics - Anfänger-Themen 6
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
R Liste und Arrays Java Basics - Anfänger-Themen 12
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
M Verkettete Liste Java Basics - Anfänger-Themen 1
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
E Elemente aus Liste entfernen und hinzufügen Java Basics - Anfänger-Themen 3
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben