【问题标题】:Insert new element in Double Linked List在双链表中插入新元素
【发布时间】:2012-12-16 09:41:28
【问题描述】:

我必须实现双链表。 prepend 方法应该在现有列表之前插入一个新元素。但我不知道如何将新元素的引用“next”与旧列表的引用“prev”链接起来。 提前致谢。

public class DoublyLinkedList {

private String info;
private DoublyLinkedList next;
private DoublyLinkedList prev;

public DoublyLinkedList(String info) {
    this.info = info;
    this.next = this.prev = null;
}

private DoublyLinkedList(String info, DoublyLinkedList prev, DoublyLinkedList next) {
    this.info = info;
    this.prev = prev;
    this.next = next;
}

DoublyLinkedList prepend(String info) {
    // Beginning of a list, insert new element
    if (prev == null) {
        prev = new DoublyLinkedList(info, null, next);
    } else {
        prev.prepend(info);
    }
    return prev;
}

【问题讨论】:

    标签: java list insert linked-list double


    【解决方案1】:

    首先将您的班级命名为DoublyLinkedNode。一系列链接的此类对象将构成一个双向链接列表

    使用正确的类名对您的思考非常重要。一旦你修复了你的 nsme ie node not list,问题应该会变得容易很多。

    在伪代码中:

    • 将根的上一个设置为新节点
    • 在根旁边设置新节点
    • 将根设置为新节点

    【讨论】:

      【解决方案2】:

      你需要通过设置新节点与当前节点的next_link来链接新节点与当前节点。

      public class DoublyLinkedList {
          ...
          DoublyLinkedList prepend(String info) {
              // Beginning of a list, insert new element
              if (prev == null) {
                  // this is the changed line.
                  prev = new DoublyLinkedList(info, null, this);
              } else {
                  prev.prepend(info);
              }
              return prev;
          }
      }
      

      【讨论】:

      • 你能帮我删除一个metode(int index)吗:对于同样的问题,我不知道如何实现它?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多