2017-04-12 14 views
0

私はリンクされたリストを作成しようとしています。ユーザーが負の数を入力すると、ユーザーに正の数を入力するようメッセージが表示されます。私はユーザーの入力のためのコードを行っているが、他の部分のための非常に困難な - 負の入力とリンクnumbers.can誰も私にコードのこれらの部分を教えてください。リンクされたリストのユーザー入力

import java.io.*; 
import java.util.Scanner; 

    class MyList{ 
    public MyList firstLink,lastLink; 
    int info,size; 
    MyList link; 
    private MyList next; 

    MyList(){ 
     this.link=null; 
     firstLink = null; 
     lastLink=null; 
    } 
    public boolean isEmpty(){ 
     return(firstLink == null); 
    } 

    public void showMyList() { 
     MyList currentLink = firstLink; 
      System.out.print("List: "); 
      while(currentLink != null) { 
       currentLink.showMyList(); 
       currentLink = currentLink.lastLink; 
      } 
      System.out.println(""); 
     } 
} 

    public class MyLinkedList { 

    public static void main(String[] args){ 

     MyList newMyList=new MyList(); 
     Scanner userInput= new Scanner(System.in); 

     int userInputNumber; 
     System.out.println("Enter Total Data"); 
     userInputNumber = userInput.nextInt(); 
      int i=1; 
      while(i<=userInputNumber){ 
      System.out.println("Enter Data "+ i +":"); 
      i++; 
      newMyList.info=userInput.nextInt(); 
      } 
      if(newMyList.firstLink!=null){ 
       newMyList=newMyList.firstLink; 
       newMyList=newMyList.lastLink; 
       newMyList.firstLink=newMyList.firstLink.link; 
     } 
    } 
} 
+1

'if(userInputNumber <0)'?また、 'LinkedList'のネイティブ実装がどのように機能するのかを調べることもできます。 – SomeJavaGuy

+0

このコードを渡して数字をリンクすることはできますか?それは私のために非常に役立つでしょう。 – Prem

+0

クラスMyListはリンクリスト構造の実装ではありません。今リストのリストを持っています... –

答えて

0

これは、あなたがリンクされたリストを理解するのに役立つことができます: LinkedList in wikipedia

A LinkedListのノードで構成されています。ノードは次のようになります。

class Node { 
    Node previousNode, nextNode; 
    int value; 

    public Node getLastNode() { 
    // traverse nextNode till it is null.. return the Node before. 
    } 
} 

入力された数値を返すメソッドを作成します。

private int getUserInput() { 
    int result = -1; 
    Scanner userInput= new Scanner(System.in); 
    while (result < 0) { 
    result = userInput.nextInt(); 
    } 
    return result; 
} 

その後、必要に応じてノードを作成してLinkedListを作成できます。

Node myLinkedList = new Node(); 
myLinkedList.value = 0; 
for (int i = 1; i < getUserInputResult; i++) { 
    var newNode = new Node(); 
    newNode.value = i; 
    // concat new Node to last Node in List; 
    var lastNodeInList = myLinkedList.getLastNode(); 
    lastNodeInList .NextNode = newNode; 
    newNode.previousNode = lastNodeInList; 
} 
関連する問題