java單向鏈表和雙向鏈表淺析

讀到了這篇文章,寫的很清晰明了,摘抄下了一些自認(rèn)為比較清晰明了的部分,然后整理了一下

何為鏈表

鏈?zhǔn)浇Y(jié)構(gòu)是一種使用對(duì)象引用變量來(lái)創(chuàng)建對(duì)象間的鏈的數(shù)據(jù)結(jié)構(gòu)滔驶。
對(duì)象引用變量可用于創(chuàng)建鏈?zhǔn)浇Y(jié)構(gòu)
對(duì)象引用變量所存儲(chǔ)的特定地址一般無(wú)關(guān)緊要。換句話說(shuō),重要的是能夠使用引用變量來(lái)訪問對(duì)象没咙,而對(duì)象在內(nèi)存中的特定存儲(chǔ)位置并不重要立膛。因此赞草,我們一般將引用變量描述為一個(gè)“指向”對(duì)象的名稱,而不是顯示其地址吆鹤,按照這種理解厨疙,引用變量有時(shí)稱為“指針”,我個(gè)人理解為內(nèi)存的地址值

//這就是一個(gè)鏈?zhǔn)浇Y(jié)構(gòu)
public class Person {
    private String name;
    private String address;
    private Person next;    // Person對(duì)象的引用
}

這種類型的對(duì)象有時(shí)稱為自引用對(duì)象。
這種關(guān)系構(gòu)成了鏈表的基礎(chǔ)疑务。鏈表是一種鏈?zhǔn)浇Y(jié)構(gòu)沾凄,該結(jié)構(gòu)中的每個(gè)對(duì)象都指向下一個(gè)對(duì)象,從而構(gòu)成了鏈表中對(duì)象的線性次序知允。撒蟀。鏈表中存儲(chǔ)的對(duì)象一般稱為鏈表的節(jié)點(diǎn)。


image.png

注意温鸽,鏈表單獨(dú)需要一個(gè)引用變量保屯,用以表示其第一個(gè)結(jié)點(diǎn)。如果某個(gè)結(jié)點(diǎn)的next引用為null涤垫,則表示鏈表在該結(jié)點(diǎn)處終止

實(shí)現(xiàn)一個(gè)單向鏈表

插入結(jié)點(diǎn)

可能會(huì)在鏈表的任何位置插入一個(gè)結(jié)點(diǎn):在鏈表的首部姑尺,或在鏈表中任何內(nèi)部結(jié)點(diǎn)之間,或在鏈表的尾部蝠猬。
(1)在首部插入結(jié)點(diǎn)
第一步切蟋,設(shè)置所添加結(jié)點(diǎn)的next引用,使其指向鏈表中當(dāng)前的第一個(gè)結(jié)點(diǎn)榆芦。
第二步柄粹,重新設(shè)置指向鏈表首部的引用,使其指向這個(gè)新添加的結(jié)點(diǎn)匆绣。

image.png

在鏈表的首部插入一個(gè)結(jié)點(diǎn)
注意:如果上述這些步驟顛倒了驻右,則將會(huì)遇到困難。如果首先重置front引用犬绒,則將失去這個(gè)唯一指向現(xiàn)有鏈表的引用旺入,而且再也不能獲取它。

(2)在其他部分插入結(jié)點(diǎn)
首先凯力,設(shè)置新節(jié)點(diǎn)的next引用茵瘾,使其指向current鎖引用結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)。然后咐鹤,重新設(shè)置當(dāng)前結(jié)點(diǎn)的next引用拗秘,使其指向這個(gè)新的結(jié)點(diǎn)。

在鏈表的中部插入一個(gè)結(jié)點(diǎn)

image.png

刪除結(jié)點(diǎn)

對(duì)鏈表中的第一個(gè)結(jié)點(diǎn)的處理一般也比較特殊祈惶。
要?jiǎng)h除鏈表的第一個(gè)結(jié)點(diǎn)雕旨,則要重新設(shè)置指向鏈表首部的引用扮匠,使其指向鏈表中當(dāng)前的第二個(gè)結(jié)點(diǎn)。
刪除鏈表的第一個(gè)結(jié)點(diǎn)

image.png

一旦找到索要?jiǎng)h除的結(jié)點(diǎn)凡涩,則重新設(shè)置前一個(gè)結(jié)點(diǎn)的next引用棒搜,使其指向的結(jié)點(diǎn)與當(dāng)前結(jié)點(diǎn)的next引用所指向的結(jié)點(diǎn)相同。然后活箕,可以根據(jù)需要使用這個(gè)刪除的結(jié)點(diǎn)力麸。

刪除鏈表內(nèi)部結(jié)點(diǎn)

image.png

實(shí)現(xiàn)一個(gè)雙向鏈表

雙鏈表(雙向鏈表):雙鏈表和單鏈表相比贯要,多了一個(gè)指向尾指針(tail)兰怠,雙鏈表的每個(gè)結(jié)點(diǎn)都有一個(gè)頭指針head和尾指針tail,雙鏈表相比單鏈表更容易操作,雙鏈表結(jié)點(diǎn)的首結(jié)點(diǎn)的head指向?yàn)閚ull瞻赶,tail指向下一個(gè)節(jié)點(diǎn)的tail;尾結(jié)點(diǎn)的head指向前一個(gè)結(jié)點(diǎn)的head筋讨,tail 指向?yàn)閚ull埃叭,是雙向的關(guān)系;


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末悉罕,一起剝皮案震驚了整個(gè)濱河市赤屋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蛮粮,老刑警劉巖益缎,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異然想,居然都是意外死亡莺奔,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門变泄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)令哟,“玉大人,你說(shuō)我怎么就攤上這事妨蛹∑粮唬” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵蛙卤,是天一觀的道長(zhǎng)狠半。 經(jīng)常有香客問我,道長(zhǎng)颤难,這世上最難降的妖魔是什么神年? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮行嗤,結(jié)果婚禮上已日,老公的妹妹穿的比我還像新娘。我一直安慰自己栅屏,他們只是感情好飘千,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布堂鲜。 她就那樣靜靜地躺著,像睡著了一般护奈。 火紅的嫁衣襯著肌膚如雪缔莲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天霉旗,我揣著相機(jī)與錄音酌予,去河邊找鬼。 笑死奖慌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的松靡。 我是一名探鬼主播简僧,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼雕欺!你這毒婦竟也來(lái)了岛马?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤屠列,失蹤者是張志新(化名)和其女友劉穎啦逆,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體笛洛,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夏志,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苛让。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沟蔑。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖狱杰,靈堂內(nèi)的尸體忽然破棺而出瘦材,到底是詐尸還是另有隱情,我是刑警寧澤仿畸,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布食棕,位于F島的核電站,受9級(jí)特大地震影響错沽,放射性物質(zhì)發(fā)生泄漏簿晓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一甥捺、第九天 我趴在偏房一處隱蔽的房頂上張望抢蚀。 院中可真熱鬧,春花似錦镰禾、人聲如沸皿曲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)屋休。三九已至坞古,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間劫樟,已是汗流浹背痪枫。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叠艳,地道東北人奶陈。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像附较,于是被迫代替她去往敵國(guó)和親吃粒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容