2016-07-09 9 views
-3

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

+0

Es ist eine große Frage, mein Freund. Viel Glück. –

+1

Werfen Sie einen Blick auf 'java.util.LinkedList'. Es gibt wahrscheinlich einige (wenn nicht viele) Gemeinkosten. Aber das sollte dir einen Ausgangspunkt geben. – dpr

Antwort

0

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); 
    } 
} 
+0

Vielen Dank Kumpel @adamreeve, es hat mir sehr geholfen. :) – Vivek

0

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.

https://www.youtube.com/watch?v=195KUinjBpU

Verwandte Themen