我對JAVA和OOP相當陌生,目前我正在學習一門學習java的數據結構和算法的學術課程。java類如何使用它自己的引用類型
當我正在學習關於鏈表的實現時,我遇到了一個小問題,那就是在實現鏈表(我熟悉構造函數和遞歸位)時不知道如何創建節點。
的Node類的代碼如下
public class Node {
public int info;
public Node next, prev;
public Node (int el) {
this (el,null,null);
}
public Node (int el,Node n,Node p){
info = el; next =n; prev=p;
}
}
我需要知道發生了什麼幕後當List類的代碼執行(特別是如何在3號線工程)和代碼是如下
public class List {
private Node head, tail;
public List (){
head = tail = null;
}
public boolean isEmpty(){
return head == null;
}
public void addToTail (int el) {
if (!isEmpty ()) {
tail = new Node (el, null, tail);
tail.prev.next = tail;
}
else head = tail = new Node(el);
}
public int removeFromTail (){
int el = tail.info;
if (head == tail)
head = tail =null;
else
{
tail = tail.prev; tail.next = null;
}
return el;
}
}
(這個例子是在那裏我學習學院給出我想知道它是如何工作)
請解釋節點類別是如何工作的。
你有任何特定的問題嗎? – John
你可以通過一個調試器,並在「雙向鏈表」中進行閱讀。有很多好的圖表應該解釋。 – weston
您是否發佈了List類的完整代碼?有一個雙向鏈表是沒有意義的,然後只有addToTail/removeFromTail方法。似乎沒有任何機制可以實際遍歷列表。 – dave