关于doublyLinkedList

时间:2015-10-21 21:12:49

标签: java

我需要构建一个双重LinkedList,它为其中的每个字符提供一个String和build节点。

public class doublyLinkedlist{
    private Node first;
    private Node last;

    public doublyLinkedList(String a){
        first=new Node(a.charAt(0),null);
        last=new Node(a.charAt(1),first);
    }
}

因此,如果我有String "ab",则第一个包含" a",最后包含" b"。

但这不是我想要的。我的构造函数应该能够为char中的每个String构建节点。有人可以向我解释LinkedList的双重作用吗?

感谢。

1 个答案:

答案 0 :(得分:1)

你是如何定义Node类的?尝试像

这样的东西
  class Node
{
  String val;

  Node next, prev;

  public Node getNext() {
    return next;
}

public void setNext(Node next) {
    this.next = next;
}

public Node getPrev() {
    return prev;
}

public void setPrev(Node prev) {
    this.prev = prev;
}

public Node(String v)
  {
      val=v;
  }

您需要添加函数来设置next和prev Nodes。现在在doublyLinkedlist类的构造函数中,您基本上分割输入字符串并为每个字符创建一个Node。另外,相应地设置next和prev。这有帮助吗?如果需要,我可以提供更详细的代码,但我会敦促你尝试。

好的,所以你的doublyLinkedlist构造函数看起来像

public doublyLinkedlist(String a) {

         String [] arr = a.split("");

         first = new Node(arr[0]);

         last = new Node(arr[arr.length-1]);

         first.setPrev(last);

         last.setNext(first);
         Node temp = first;
         for (int i=1 ; i<arr.length-1 ; i++)
         {
             Node newNode = new Node(arr[i]);
             temp.setNext(newNode);
             newNode.setPrev(temp);

             temp = temp.next;
         }

         //finally

         temp.prev.next = temp;
    }