2017-03-12 1 views
-1

Ich muss dem Benutzer erlauben, int-Elemente einzugeben, die in der erstellten LinkedList entweder am Anfang oder am Ende oder an einer bestimmten Position eingefügt werden.Wie erstelle ich eine LinkedList mit einer bestimmten Größe?

linkedList list = new linkedList(); 

Um Elemente instert, ich verwende diesen Code:

public void insert(int val){ 
     Node nptr = new Node(val, null, null); 
     Node tmp, ptr;   
     boolean ins = false; 
     if (start == null){    
      nptr.setLinkNext(nptr); 
      nptr.setLinkPrev(nptr); 
      start = nptr; 
      end = start;    
     } 
     else if (val <= start.getData()){ 
      nptr.setLinkPrev(end); 
      end.setLinkNext(nptr); 
      start.setLinkPrev(nptr); 
      nptr.setLinkNext(start); 
      start = nptr; 
     } 
     else if (val >= end.getData()){ 
      end.setLinkNext(nptr); 
      nptr.setLinkPrev(end); 
      nptr.setLinkNext(start); 
      start.setLinkPrev(nptr); 
      end = nptr; 
     } 
     else{ 
      tmp = start; 
      ptr = start.getLinkNext(); 
      while (ptr != null){ 
       if (val >= tmp.getData() && val <= ptr.getData()){ 
        tmp.setLinkNext(nptr); 
        nptr.setLinkPrev(tmp); 
        nptr.setLinkNext(ptr); 
        ptr.setLinkPrev(nptr); 
        ins = true; 
        break; 
       } 
       else{ 
        tmp = ptr; 
        ptr = ptr.getLinkNext(); 
       } 
      } 
      if (!ins){ 
       tmp.setLinkNext(nptr); 
       nptr.setLinkPrev(tmp); 
      } 
     } 
     size++; 
    } 

Was ich brauche nur, bis die maximale Größe der Liste 10 Elemente erreicht tun dies zu ermöglichen ist. Wie erreiche ich das?

Auch verwende ich Schalter und Fälle dafür. Dies ist nicht der vollständige Code, nur Teile davon, weil der Code riesig ist.

  case 1 : 
       System.out.println("Enter integer element to insert"); 
       list.insert(scan.nextInt());      
       break; 
+2

Stackoverflow ist kein Ort, an dem man Leute um Hausaufgaben bitten kann – Shmuel

+0

Ich würde nicht fragen, ob ich die Antwort selbst finden könnte ... –

Antwort

1

Nun könnten Sie verwenden:

list.size() 

Um die Anzahl der Elemente in der verknüpften Liste zu erhalten und entsprechend hinzufügen.

Wenn dies nicht machbar ist, könnten Sie Ihre eigene verknüpfte Liste schreiben, die nicht mehr als eine vordefinierte Anzahl von Elementen benötigt.

Oder Sie könnten einfach eine Klasse haben, die eine verknüpfte Liste enthält. Und Sie behandeln alle Ereignisse in Bezug auf diese verknüpfte Liste in dieser Klasse. Sie müssten jedoch über ein Objekt darauf zugreifen.

Dieses Thema ist leise breit. Es gibt viele Möglichkeiten, forschen und tun, was Ihnen am besten passt.

0

Es wäre in Ihrem Fall viel einfacher sein, die Größe des LinkedList vor dem Einsetzen zu überprüfen:

if(list.size()>=10){//Do something...} 

Ansonsten gibt es keine festgelegte maximale Größe von LinkedList Struktur.

+0

Er redet über ** rohe Linkedlist ** und offensichtlich wird er haben um zu verfolgen, ** wenn ** und ** wie ** die ** Größe der Liste erweitert ** innerhalb der ** Einfügung (int) ** Methode. Antwortet nicht wirklich, obwohl – ShayHaned

+0

Nun, in einem solchen Fall wäre es in Ordnung, nur einen einfachen Zähler hinzuzufügen. – NickitaX

+1

Ja, und Sie müssen diese ** einfache Counter-Bearbeitungen ** machen, wenn Sie Ihre Antwort akzeptieren wollen :) das ist alles, was ich versuche, Ihnen zu helfen, ** wie Sie Ihre Antwort als richtig erhalten ** :) – ShayHaned

Verwandte Themen