Ein Buch über Java-Datenstrukturen über den Sommer lesen, und ich habe eine harte Zeit mit den Grundlagen der verknüpften Listen und Erstellen von verknüpften Listen mit Knoten.Funktion wird keine verknüpfte Liste mit Knoten, die ich erstelle, referenzieren
Insbesondere versuche ich herauszufinden, wie Sie eine Datei unsortierter Ganzzahlen in eine Funktion übergeben, sortieren Sie sie und drucken Sie die sortierte verknüpfte Liste. Ich weiß, dass ich das wahrscheinlich komplizierter mache, als es sein muss, aber ich verstehe einfach nicht, wie genau diese Knoten verbunden sind und wie man sie zurückgibt.
Ich dachte, ich könnte ein Listenobjekt erstellen und es als Referenz für den ersten Knoten verwenden, der wiederum auf den vorhergehenden Knoten bis zum Ende der Liste verweisen würde, was mit Null bezeichnet wird. Das ist Logik, der ich aus dem Buch folgen will, aber etwas klickt nicht.
Ich bekomme einen Fehler, dass meine readFile-Methode nicht definiert ist, wenn ich es in main aufrufen. Wie ist das möglich?
import java.util.Scanner;
import java.util.List;
public class Node {
int value;
Node next;
/**
* Constructor
* @param value The element to store in this node, an integer from file
*/
public Node(int value) {
this.value = value;
next = null;
}
public static Node first;
public static Node last;
public void linkedList() {
first = null;
last = null;
}
/**
* function sorts integers
* @param inputFile file of integers from user
* @return linked list of sorted integers
*/
public static Node readFile(Scanner inputFile) {
while (inputFile.hasNext()) {
int data = inputFile.nextInt();
if (first == null) {
first = new Node(data);
last = first;
}
if (data < first.value) {
first.next = first;
first = new Node(data);
}
if (data > first.value) {
last.next = new Node(data);
last = last.next;
}
}
return first;
}
/**
* function prints linked list
*/
public void print() {
Node ref = first;
while (ref != null) {
System.out.println(ref.value + " ");
ref = ref.next;
}
}
}
Das ist mein Haupttreiber:
import java.util.Scanner;
import java.util.List;
import java.io.*;
public class listTesting {
private static final String FILENAME = "numbers.txt";
public static void main(String[] args) throws IOException {
Scanner keyboard = new Scanner(System.in);
System.out.print("Opening " + FILENAME);
File file = new File(FILENAME);
Scanner inputfile = new Scanner(file);
linkedList list = new linkedList();
// error here stating this method is undefined ??
list = readFile(inputfile);
System.out.println("\nThe sorted linked list: ");
list.print();
}
}
Es ist nicht klar, was Ihre Frage oder Problem ist. – shmosel
Ich bekomme einen Fehler, wo ich readFile in der Hauptmethode des Treibers aufrufen. Meine Absicht ist, die sortierte Liste der Knoten zur Liste zurückzugeben, dann Liste zu drucken. Eclipse gibt an, dass meine readFile-Methode undefiniert ist, wenn dies nicht der Fall ist. – pootduke9000
'readFile' ist definiert für' Node' nicht für 'listTesting'. Versuchen Sie, 'Node.readFile (Eingabedatei)' – garnulf