1

私はこれをしばらくいじっていましたが、何をしても出力が常に切り捨てられたり、恣意的に「ソート」されたりしているようです。2 つの要素を交換するのに十分な参照を移動していますか? 現在のノードの SSN フィールドが前のものよりも大きい場合、前のものを現在のものにリンクするようにしようとしています。これは私のコードが現時点でどのように見えるかです:

public void loadRecords() throws FileNotFoundException {

    Node head = null;
    Node prev = null;
    Node curr = null;
    Scanner fileRead = makeAFile(database);
    fileRead.useDelimiter(";|\n");
    boolean sorted = false;
    while (fileRead.hasNext()) {
        head = new Node(fileRead.next(), fileRead.next(), fileRead.next());
        head.nextOne = prev;

        if (prev != null) {
            for (curr = head; curr != null; curr = curr.nextOne) {
                if ((curr).compareTo(prev) > 0) {

                    head.nextOne = prev.nextOne; //oops, there we go. used to be "head.nextOne = curr.nextOne".
                    prev = head; // not even sure if this is what I want
                    sorted = true;
                } else
                    break;
            }
        }

        if (sorted != true) {
            prev = head;
        }
        sorted = false;
    }
}
4

1 に答える 1

0

あなたはおそらくこのようなものが必要です

                Node tmp = head.nextOne
                head.nextOne = prev.nextOne;
                prev.nextOne = tmp;
于 2013-03-15T23:14:02.503 に答える