Ich bin neu in Datenstrukturen. Ich bin sehr neugierig, Datenstrukturen zu lernen, aber ich habe kein gesundes Tutorial dafür gefunden, also poste ich es hier, denkend, dass jemand mir helfen würde. Ich kenne die Theorie der verketteten Liste, aber während der Implementierung bin ich völlig leer. Wenn jemand mich verstehen lassen kann, wie es funktioniert, wäre das für mich wirklich hilfreich.Wie man durch die Linked List blättert, fügt ein und löscht. Bitte geben Sie mir einen laufenden Code, so dass es für mich einfach zu verstehen ist. Ich weiß, es gibt viele Leute, die denken werden, um diese Frage als ein Duplikat zu markieren und dies zu verwerfen. Anstatt Fehler zu finden, wenn Sie mir eine gute Lösung bieten, die wirklich hilfreich wäre. Vielen Dank.Traversieren, Einfügen und Löschen in LinkedList Datenstruktur in Java
Antwort
Einfache Implementierung einer verketteten Liste zeigt append, einfügen, löschen und iterieren. Es gibt Ineffizienzen, sie sind für Sie, um herauszufinden :) Gehen Sie etwas Forschung um zu sehen, wie man es besser macht.
public class LinkedList {
public static class Node {
private Object data;
private Node next = null;
public Node(Object data) {
this.data = data;
}
public void setNext(Node n) {
next = n;
}
public Node getNext() {
return next;
}
public Object getData() {
return data;
}
}
public static void iterate(Node n) {
while (n != null) {
System.out.println(n.getData());
n = n.getNext();
}
}
public static void insert(Node newNode, Node after) {
newNode.setNext(after.getNext());
after.setNext(newNode);
}
public static void delete(Node toDelete, Node root) {
Node n = root;
while (n.getNext() != toDelete) {
n = n.getNext();
}
n.setNext(toDelete.getNext());
}
public static void main(String[] args) {
Node a = new Node("a");
Node b = new Node("b");
Node c = new Node("c");
// append
a.setNext(b);
b.setNext(c);
// iterate
System.out.println("Initial list");
iterate(a);
// insert d after b
Node d = new Node("d");
insert(d, b);
// iterate again
System.out.println("After insert");
iterate(a);
// delete d
delete(d, a);
// iterate again
System.out.println("After delete");
iterate(a);
}
}
Vielen Dank Kumpel @adamreeve, es hat mir sehr geholfen. :) – Vivek
Gut zu starten, wenn Sie auf Youtube gehen und Derek Banas suchen, finden Sie ein tolles Video nur auf LinkedLists, und wie Sie sie implementieren. Er spricht ziemlich schnell, aber der Inhalt ist meiner Meinung nach sehr gut unterrichtet. Ich folge seinen Videos und nach dem Video denke ich, dass Sie ein besseres Verständnis haben werden.
- 1. Vorteile von "beiden" Arraylist und Linkedlist ... möglich in Java?
- 2. Einfügen in der Mitte von LinkedList in Java
- 3. LinkedList einfügen Nach Knoten
- 4. Circular LinkedList in Java
- 5. LinkedList Update-Leistung in Java
- 6. Reverse-LinkedList Problem in Java
- 7. Get LinkedList-Instanz in Java
- 8. Java-Datenstruktur, die effizient hinzufügen, löschen und zufällig
- 9. Klassenwörterbuch in Java (Datenstruktur)
- 10. Entfernen von Knoten in LinkedList in Java
- 11. Selbst-Implementierung von einfachen LinkedList in Java
- 12. bestätigen Java LinkedList „foreach“ loop
- 13. Java (Arrays) einfügen, finden, löschen
- 14. Löschen des LinkedList-Inhalts (Destruktor)
- 15. Traversieren und Filtern eines Baumes in Haskell
- 16. MySQL, Einfügen und Löschen
- 17. LinqtoSQL - Löschen und Einfügen
- 18. Trie Datenstruktur in Java - Telefonbuchanwendung
- 19. Handle große Datenstruktur in Java
- 20. Java LinkedList vorherige nächste
- 21. Sortieren einer Datenstruktur in Java
- 22. LinkedList checkForCodification Fehler java
- 23. Warum hat LinkedList keine initialCapacity in Java?
- 24. Java: LinkedList Reverse
- 25. Warum LinkedList in Java ist keine echte Linked List?
- 26. Datenstruktur für Key-Wert in Java ohne Sammlung erstellen
- 27. Traversieren eines Graphen Vs Traversieren eines Baums
- 28. Wie implementiert man eine Set-Datenstruktur in Java?
- 29. Wie flache Datenstruktur in hierarchische Datenstruktur (Java) anzeigen?
- 30. Welche Vorteile hat addLast in der LinkedList Java Core Collection?
Es ist eine große Frage, mein Freund. Viel Glück. –
Werfen Sie einen Blick auf 'java.util.LinkedList'. Es gibt wahrscheinlich einige (wenn nicht viele) Gemeinkosten. Aber das sollte dir einen Ausgangspunkt geben. – dpr