我遇到了一個使用幾種類型的鏈接列表數據結構的大型源代碼。例如,代碼中使用的簡單鏈接列表數據結構使用鏈接類型的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。 –