我遇到了一个使用多种链接列表数据结构的大型源代码。例如,代码中使用的简单链表数据结构是使用Link类型的nextLink节点和初始化对象的构造函数。
public class Link {
public int data1;
public double data2;
public Link nextLink;
//Link constructor
public Link(int d1, double d2) {
data1 = d1;
data2 = d2;
}
}
另一方面,另一段代码使用以下数据结构(双链表?):
public class ComplexLinkList {
public static final int NEXT_BLOCK = Integer.MAX_VALUE;
public static final int PREV_BLOCK = -1;
//The var string holds the variable name
private String var;
private int coverStart = PREV_BLOCK;
private int coverEnd = NEXT_BLOCK;
//Constructor ( copy Constructor ?)
public ComplexLinkList(ComplexLinkList p) {
this.var = p.var;
this.coverEnd = p.coverEnd;
this.coverStart = p.coverStart;
}
----
----
}
构造函数接受ComplexLinkList类型的参数并初始化字段。两种实现之间的概念差异是什么?第二个是完全一个链表吗?
答案 0 :(得分:2)
LinkedList意味着,有一些节点如下图所示连接。它可以单向或双向连接。您的第一个类具有成员变量nextLink以与下一个节点建立连接。但是第二类没有办法与另一个节点建立联系。
对于双向链表,它有2个成员变量与前一个节点和下一个节点连接。
答案 1 :(得分:0)
第一个是专门的链接列表(没有双重链接),它将data1
和data2
作为卫星数据。第二个没有意义,但绝对不是一个链表。我认为你应该发布该类中的所有代码,以便我们能够告诉它的功能。