2016-11-05 5 views
3

Ich habe einige Verwirrung über die Erstellung meiner DLList in Java. Meine Anweisungen sagen, dass meine DLLNode-Klasse Links haben sollte, die auf die vorherigen und nächsten Knoten zeigen. Muss ich dies unter dem Datenabschnitt erstellen oder ist es eine Methode?Doppelt verknüpfte Liste Java

Vielen Dank für Ihre Zeit

+3

Was ist der Datenbereich in Java? Das ist im Allgemeinen ein Sammelbegriff. –

+2

Unklar, was Sie unter Datenabschnitt verstehen ... Haben Sie einzelne verknüpfte Listen gelernt? Sollte nicht anders sein –

Antwort

0

Dies ist eine einfache DLL Node-Klasse I für die letzten Semester an mehreren Projekten mit diesem habe.

Ich warne Sie jedoch, einfach Code kopieren kann den Ehrenkodex Ihrer Institution verletzen.

private class Node { 
    public Node prev, next; 
    int digit; 

    // initializes the new node's values 
    public Node(Node prev, int digit) { 
     this.prev = prev; 
     this.digit = digit; 
     this.next = null; 
    } 
} 

Wenn Sie einen Knoten hinzufügen müssen, müssen Sie nur daran denken, den vorherigen Knoten ‚next‘ Feld auf den neuen Knoten zu verbinden.

0

So ziemlich, Sie müssen nur zwei Referenzen erstellen, die auf sich selbst verweisen und sie als nächste und vorherige aufgerufen. so zum Beispiel:

private class Node { 
    int data; // assuming the data is an integer 
    Node next; // this is the next reference. 
    Node previous; // this is the previous reference 

    Node(int data) { 
    this.data = data; 
    } 
} 
3

können Sie beginnen DDList wie folgt erklärt:

public class DLList { 
    private static class Node { 
     int data; 
     Node previous; 
     Node next; 
     Node(int d) { 
      data = d; 
     } 
    } 

    private Node head; 
    private Node tail; 
    // ... 
} 

Einige Highlights:

  • Die Node-Klasse ist eine innere Klasse von DDList und damit Mitglied. So wird es im selben Abschnitt wie die anderen Mitglieder deklariert, z. Felder. Das nennst du "Datenteil", glaube ich.
  • Sie können head und tail vor Node deklarieren.
  • Dank statisch, Node hat keinen Verweis auf die DDList. Dies spart (nur) 4 Byte pro Node, kann jedoch Speicherlecks vermeiden, wenn Sie nicht verbundene außerhalb DDList übergeben. Es ist auch besser Stil IHMO.
  • Dank privat ist Node außerhalb DLList nicht sichtbar. Da Sie auf eine Klasse zugreifen müssen, um auf ihre Felder zugreifen zu können, ist dies ähnlich der Einstellung der Felder Node als privat. Aber es ist effizienter, da der Compiler keine synthetischen Methoden generieren muss, wenn Sie auf die Felder Node in DLList zugreifen.
  • Überlegen Sie, data endgültig, so dass es nicht ändern kann.
  • Überlegen Sie, DDList generisch zu machen. Eine coole Übung für den Leser :-)
Verwandte Themen