2017-04-12 66 views
0

我想做一个链接列表,它将从用户接受输入他想要使链接列表不使用内置LinkedList函数的数量。但是如果用户输入一个负数,它会给用户输入一个正数的信息。我已经完成了用户输入的代码,但是发现其他部分的负面输入和连接数字非常困难。任何人都可以给我这些代码部分。链接列表用户输入

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

一个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; 
} 

之后,您可以根据需要创建Nodes来创建您的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; 
}