【问题标题】:Creating nodes for a sorted list in Java在 Java 中为排序列表创建节点
【发布时间】:2013-09-22 22:08:13
【问题描述】:

我必须创建一个按字母顺序排序的节点类,所以我认为它是一个单链表。我应该“递归地”创建它,我对此感到困惑。我必须实现查询列表的基本方法,这很容易,但我被困在初始化部分,尤其是添加节点。

有什么帮助吗?

我的代码现在看起来像这样:

public class SortedSetNode implements Set {
   protected String value;
   protected SortedSetNode next;

   public SortedSetNode(String v, SortedSetNode n) {
      //value = v;
      //next = n;
   }
   public SortedSetNode(String v) {
      //value = v;
   }

}

【问题讨论】:

  • 如果您取消注释这些行,并删除 implements Set 您应该没问题。一组!= 节点
  • @PeterLawrey 尽管你给了他一些很好的建议,但我觉得他希望有人为他实施它(HW)
  • 我不希望任何人为我实现它。我只是想更好地了解如何递归地构建一组节点......

标签: java list nodes singly-linked-list


【解决方案1】:

这就是我实现排序列表的方式。注意:列表不是集合。

public class SortedList<E extends Comparable<E>> {
    private SortedNode<E> head = null;

    public void add(E e) {
        SortedNode<E> node = new SortedNode<E>(e);
        if (head == null || head.e.compareTo(e) <= 0) {
            node.next = head;
            head = node;
        } else {
            head.add(node);
        }
    }
}

public class SortedNode<E extends Comparable<E>>  {
    final E e;
    SortedNode<E> next;

    public SortedNode(E e) {
        this.e = e;
    }

    public void add(SortedNode<E> node) {
        if (next == null || e.compareTo(node.e) <= 0) {
            node.next = next;
            next = node;
            return;
        }
        next.add(node);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多