雙鏈表其實和單鏈表區別不大,與單鏈表相比,雙鏈表的每個節點是由 乙個資料 兩個指標組成的,兩個指標分別指向前驅和後繼。
雙鏈表與單鏈表相比的乙個好處就是,雙鏈表中的任意乙個節點都可以比較容易的訪問它的前驅和後繼
首先先介紹一下雙鏈表的增加和刪除乙個節點功能的實現
* 線性表的介面的定義
*/public inte***ce mylist
public class listnode
}
/*
* 雙鏈表的實現
*/public class doublelinkedlist implements mylist
//向鍊錶中新增乙個節點
@override
public void add(object element)
//刪除節點
@override
public void delete(object element)
p = p.next;
} }//通過給定的索引值去刪除節點
//需要考慮的乙個問題就是 一直刪的話 會不會出現越界問題
@override
public void delete(int index)
listnode p = first.next;
int i = 0; //和每個結點相對應
while(p != last)
i++;
p = p.next;
} }@override
public void update(int index, object newelement)
listnode p = first.next;
int i = 0; //和每個結點相對應
while(p != last)
i++;
p = p.next;
} }@override
public boolean contains(object target)
p = p.next;
} return false;
} @override
public int indexof(object element)
i++;
p = p.next;
} return -1; }
@override
public object at(int index)
int i = 0;
listnode p = first.next;
while(p!=last)
i++;
p = p.next;
} return null;
} @override
public string tostring()
p = p.next;
} return sb.tostring();
}}
public class test
}
[a,b,c,d,e]
[b,c,d,e]
[b,d,e]
java實現單鏈表 雙鏈表 環鏈表
鍊錶是程式裡重要的資料結構,在程式世界運用很廣泛,眾所周知的當屬於jdk裡的linklist了。鍊錶的優點,是相對於陣列來說,擴容是非常快的,如果是陣列擴容,陣列是新申請乙個更大空間的陣列,然後把老陣列內的資料複製到新陣列 而鍊錶就不必申請新鍊錶,直接再分配乙個元素的儲存空間即可。鍊錶的缺點,相對於...
鍊錶的實現 單鏈表 雙鏈表
鍊錶知識的引入 對於之前我們接觸到的陣列知識,要想儲存多個物件,首先想到的一定是物件陣列。但是陣列是乙個長度固定的線性結構,一旦內容不足或者過多,都會在成記憶體資源的浪費,由此引入鍊錶充分解決資源浪費問題。class node private屬性需要設定getter setter方法 public ...
單鏈表與有序雙鏈表的實現
單鏈表的實現 描述定義單鏈錶類,建立帶頭結點的單鏈表 節點型別為整型資料 要求包含以下成員函式 頭插法建立單鏈表 利用建構函式實現 尾插法建立單鏈表 過載建構函式實現 鍊錶的遍歷 按值刪除乙個節點 按位置刪除乙個節點 鍊錶的析構 輸入輸入一組資料,以尾插法的形式建立單鏈表 表示輸入結束 構造第乙個鍊...