每个节点是否可以有多个值



到目前为止,我已经了解到链表是一个指向下一个节点的节点

第一 - 1 - 2 - 3 - 4 - 5 -6 - 7-空

我的问题是,是否可以将列表分成相等的块,如下所示

首页 - |

1 2 3| - |4 5 6| - |7| - 空

我已经尝试将数据打包到如下所示的对象中

   class IntegerData
    {
      private int[] data;
      private int numData;
      public IntegerData(int[] data)
      {
        data = new int[numData];
        numData = 8;
      }
    }
This is my Node class.
class Node
{
  private int m;
  private Node next;
  private Node prev;
  public Node(Node prev,IntegerData data,Node next)
  {
    this.next = next;
    this.prev = prev;
  }
  public Node getNext()
  {
    return next;
  }
  public void setNext(Node next)
  {
    this.next = next;
  }
  public Node getPrev()
  {
    return prev;
  }
  public void setPrev(Node next)
  {
    this.prev = next;
  } 
}

到目前为止,我被困住了。有人可以指出我正确的方向吗?

您可以只创建一个列表列表

    List<Integer> list1 = Arrays.asList(1,2,3);
    List<Integer> list2 = Arrays.asList(4,5,6);
    List<Integer> list3 = Arrays.asList(7);
    List<List<Integer>> masterList = Arrays.asList(list1, list2, list3);

通常您的节点应该是这样的:

public class Node<T> {
private Node<T> prev;
private Node<T> next;
private T data;
public Node(Node<T> prev, T data) {
    this.prev = prev;
    this.data = data;
    if (prev != null) {
        prev.setNext(this);
    }
}
private void setNext(Node<T> next) {
    this.next = next;
}
public Node<T> getPrev() {
    return prev;
}
public Node<T> getNext() {
    return next;
}
public T getData() {
    return data;
}
}

现在,您可以在列表中放置任何内容,例如 Integer 数组:

 Node<Integer[]> n1 = new Node<Integer[]>(null, new Integer[]{1, 2, 3});
 Node<Integer[]> n2 = new Node<Integer[]>(n1, new Integer[]{4, 5, 6});
是的

每个节点可能有多个值。为此,您必须更改节点的结构。你正在使用这个

  private int m;
  private Node next;
  private Node prev;

您必须创建更多变量甚至数组(根据您的选择)在这种情况下,我知道您需要在一个节点中三个变量,因此只需创建三个这样的变量

   private int x;
   private int y;
   private int z;
   private Node next;
   private Node prev;

相关内容

  • 没有找到相关文章

最新更新