【发布时间】:2014-03-14 11:14:29
【问题描述】:
我遇到了一个使用多种类型的链接列表数据结构的大型源代码。例如,代码中使用的简单链表数据结构是使用 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 类型的参数并初始化字段。两种实现之间的概念区别是什么?第二个究竟是一个链表吗?
【问题讨论】:
-
第一个是单链表。第二个没有指向另一个元素的链接,因此它不是链表。有可能第二个是用来模拟双向链表,使用数组等另一种数据结构,但是没有办法知道。我建议使用 JDK 阅读源代码中的 LinkedList。
标签: java data-structures linked-list