Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 功能赢得';t引用带有节点I'的链表;我在创造_Java_Linked List_Nodes - Fatal编程技术网

Java 功能赢得';t引用带有节点I'的链表;我在创造

Java 功能赢得';t引用带有节点I'的链表;我在创造,java,linked-list,nodes,Java,Linked List,Nodes,整个夏天我都在读一本关于Java数据结构的书,对于链表的基础知识和创建带有节点的链表,我感到很困难 具体地说,我试图找出如何将未排序的整数文件传递到函数中,对它们进行排序,并打印排序后的链表。我知道我可能会让它变得比需要的更复杂,但我只是不知道这些节点是如何链接的,以及如何返回它们 我想我可以创建一个list对象,并将其用作对第一个节点的引用,而第一个节点又将引用前面的节点,直到列表的末尾,该节点用null表示。这是我试图从书中遵循的逻辑,但有些东西没有点击 当我在main中调用readFile

整个夏天我都在读一本关于Java数据结构的书,对于链表的基础知识和创建带有节点的链表,我感到很困难

具体地说,我试图找出如何将未排序的整数文件传递到函数中,对它们进行排序,并打印排序后的链表。我知道我可能会让它变得比需要的更复杂,但我只是不知道这些节点是如何链接的,以及如何返回它们

我想我可以创建一个list对象,并将其用作对第一个节点的引用,而第一个节点又将引用前面的节点,直到列表的末尾,该节点用null表示。这是我试图从书中遵循的逻辑,但有些东西没有点击

当我在main中调用readFile方法时,我得到一个错误,即readFile方法未定义。这怎么可能

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

类内listTesting没有任何到节点类的链接。 这条线

list = readFile(inputfile);
编译器尝试在listTesting类中查找静态方法

我不清楚的下一项:

linkedList list = new linkedList(); 

// error here stating this method is undefined ??
list = readFile(inputfile);
您可以使用默认构造函数创建列表变量,但就在使用readFile方法的结果更改它之后。同样在节点类中,readFile返回节点类(而不是linkedList)


我知道您在Java方面还处于起步阶段,所以请更仔细地阅读有关Java的书(甚至尝试在数据结构之前重复Java基础知识)。

类内列表测试没有任何与节点类的链接。 这条线

list = readFile(inputfile);
编译器尝试在listTesting类中查找静态方法

我不清楚的下一项:

linkedList list = new linkedList(); 

// error here stating this method is undefined ??
list = readFile(inputfile);
您可以使用默认构造函数创建列表变量,但就在使用readFile方法的结果更改它之后。同样在节点类中,readFile返回节点类(而不是linkedList)


我知道您在Java方面还处于起步阶段,所以请更仔细地阅读有关Java的书(甚至尝试在数据结构之前重复Java基础知识)。

不清楚您的问题是什么。我遇到一个错误,我在驱动程序的主方法中调用readFile。我的目的是将已排序的节点列表返回到列表,然后打印列表。Eclipse声明我的readFile方法未定义,但它没有定义。
readFile
是为
节点定义的,而不是为
列表测试定义的。试着调用
Node.readFile(inputfile)
天哪,我发誓我已经试了半打了。非常感谢。你知道你只能有一个链表实例,因为第一个和最后一个都是静态的?我可能会给你一些意想不到的惊喜。不清楚你的问题是什么。我在驱动程序的主方法中调用readFile时出错。我的目的是将已排序的节点列表返回到列表,然后打印列表。Eclipse声明我的readFile方法未定义,但它没有定义。
readFile
是为
节点定义的,而不是为
列表测试定义的。试着调用
Node.readFile(inputfile)
天哪,我发誓我已经试了半打了。非常感谢。你知道你只能有一个链表实例,因为第一个和最后一个都是静态的?我可能会给你一些意想不到的惊喜。