我正在尝试创建一个链接列表,该列表将从用户那里获取他想要使用内置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;
}
}
}
答案 0 :(得分: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;
}
之后,您可以根据需要创建节点来创建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;
}