在订单中将项目插入自定义链接列表

时间:2011-07-15 22:15:22

标签: java sorting insert linked-list

我正在尝试将项目插入到自定义链接列表中,同时保持列表顺序。

到目前为止,我的工作是:

public class CustomList {   

    public CustomList() {
        this.first = null;
    }
    public void insert(Comparable newThing) {
        Node point = this.first;
        Node follow = null;
        while (point != null && point.data.compareTo(newThing) < 0) {
            follow = point;
            point = point.next;
        }
        if (point == null) {
            Node newNode = new Node(newThing);
            newNode.next = this.first;
            this.first = newNode;
        } else {
            Node newNode = new Node(newThing);
            newNode.next = point;
            if (follow == null) {
                this.first = newNode;
            } else {
                follow.next = newNode;
            }
        }
    }
    private Node first;

    private class Node {

        public Comparable data;
        public Node next;

        public Node(Comparable item) {
            this.data = item;
            this.next = null;
        }
    }
}

我从中获得的输出看起来像命令列表的一部分,然后重新开始。

示例(我正在排序字符串):

而不是像a,b,c,...,z

那样

我得到a,b,c,...,z,a,b,c,...,z,a,b,c,...,z

所以它似乎没有在某些点“看到”整个列表。

这是硬件任务的一部分,所以我很感激建议,但让我试着弄明白自己!

1 个答案:

答案 0 :(得分:1)

如果插入的元素大于所有现有元素,会发生什么?

您希望在结尾处插入元素,但实际上您是在开始时插入它。然后在此之前插入任何后来的元素(如果它们更小),或者在开始时再插入。