到目前为止,我已经了解到链表是一个指向下一个
的节点first - 1 - 2 - 3 - 4 - 5 -6 - 7-null
我的问题是,是否可以将列表分成相同的块,如下所示
首先 - | 1 2 3 | - | 4 5 6 | - | 7 | - null
我已经尝试将数据打包到下面的对象中
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;
}
}
我现在被困住了。有人能指出我正确的方向吗?
答案 0 :(得分:0)
您只需创建列表列表
即可 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);
答案 1 :(得分:0)
通常,您的节点应该是这样的:
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});
答案 2 :(得分:0)
是每个节点可能有多个值。 为此,您必须更改节点的结构。 你正在使用这个
private int m;
private Node next;
private Node prev;
您必须创建更多变量甚至数组(根据您的选择) 在这种情况下,我得到你在一个节点中需要三个变量,所以只需创建三个这样的
private int x;
private int y;
private int z;
private Node next;
private Node prev;