雙鏈表的實現 首先了解單鏈表的原理

2021-09-11 19:08:58 字數 1692 閱讀 6286

雙鏈表其實和單鏈表區別不大,與單鏈表相比,雙鏈表的每個節點是由 乙個資料  兩個指標組成的,兩個指標分別指向前驅和後繼。

雙鏈表與單鏈表相比的乙個好處就是,雙鏈表中的任意乙個節點都可以比較容易的訪問它的前驅和後繼

首先先介紹一下雙鏈表的增加和刪除乙個節點功能的實現

* 線性表的介面的定義

*/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 ...

單鏈表與有序雙鏈表的實現

單鏈表的實現 描述定義單鏈錶類,建立帶頭結點的單鏈表 節點型別為整型資料 要求包含以下成員函式 頭插法建立單鏈表 利用建構函式實現 尾插法建立單鏈表 過載建構函式實現 鍊錶的遍歷 按值刪除乙個節點 按位置刪除乙個節點 鍊錶的析構 輸入輸入一組資料,以尾插法的形式建立單鏈表 表示輸入結束 構造第乙個鍊...