數(shù)據(jù)結(jié)構(gòu):鏈表

一银觅、定義
1.需要明確幾個概念:線性表(順序表, list, linear list), 數(shù)組(array),鏈表(linked-list)。
2.線性表:在中文里江掩,線性表也叫作順序表再悼。在英文中核畴,它稱為list, linear list等。它是最基礎(chǔ)冲九、最簡單谤草、最常用的一種基本數(shù)據(jù)結(jié)構(gòu)跟束,線性表總存儲的每個數(shù)據(jù)稱為一個元素,各個元素及其索引是一一對應(yīng)的關(guān)系丑孩。線性表有兩種存儲方式:順序存儲方式和鏈?zhǔn)酱鎯Ψ绞健?br> 3.數(shù)組(array):數(shù)組就是線性表的順序存儲方式冀宴。數(shù)組的內(nèi)存是連續(xù)分配的,并且是靜態(tài)分配的温学,即在使用數(shù)組之前需要分配固定大小的空間略贮。可以通過索引直接得到數(shù)組中的而元素仗岖,即獲取數(shù)組中元素的時間復(fù)雜度為O(1)逃延。
4.鏈表(linked-list):鏈表就是線性表的鏈?zhǔn)酱鎯Ψ绞健f湵淼膬?nèi)存是不連續(xù)的轧拄,前一個元素存儲地址的下一個地址中存儲的不一定是下一個元素揽祥。鏈表通過一個指向下一個元素地址的引用將鏈表中的元素串起來。

鏈表分為單向鏈表(Singly linked lis)檩电、雙向鏈表(Doubly linked list)拄丰、循環(huán)鏈表(Circular Linked list)。

二俐末、單向鏈表
1.單向鏈表是最簡單的鏈表形式愈案。我們將鏈表中最基本的數(shù)據(jù)稱為節(jié)點(node),每一個節(jié)點包含了數(shù)據(jù)塊和指向下一個節(jié)點的指針鹅搪。

單向鏈表

2.插入
在鏈表中插入一個新的元素有兩種方式:后插和前插站绪。后插就是每次在鏈表的末尾插入新元素,前插就是在鏈表的頭插入新元素丽柿。
后插法比較符合平常的思維方式恢准,并且保證插入數(shù)據(jù)的先后順序。但是由于只保存了頭結(jié)點甫题,所以每次插入新元素必須重新遍歷到鏈表末尾馁筐。為了解決這個問題,考慮增加一個尾指針坠非,指向鏈表的最后一個節(jié)點敏沉。
后插

由于前插法是在頭部插入新元素,那么每次增加新元素可以直接通過頭指針?biāo)饕茁耄堑玫降脑仨樞蚺c插入順序相反
前插

2.刪除
由于單向鏈表只存儲了頭指針盟迟,所以刪除單向鏈表中的元素時,需要找到目標(biāo)節(jié)點的前驅(qū)節(jié)點潦闲。
三攒菠、雙向鏈表
1.顧名思義,雙向鏈表就是有兩個方向的鏈表歉闰。同單向鏈表不同辖众,在雙向鏈表中每一個節(jié)點不僅存儲指向下一個節(jié)點的指針卓起,而且存儲指向前一個節(jié)點的指針。通過這種方式凹炸,能夠通過在O(1)時間內(nèi)通過目的節(jié)點直接找到前驅(qū)節(jié)點戏阅,但是同時會增加大量的指針存儲空間。
雙向鏈表

2.插入
在雙向鏈表中插入新元素的操作跟在單向鏈表中插入新元素的操作類似啤它。
插入

3.刪除
由于雙向鏈表中每個節(jié)點記錄了它的前驅(qū)結(jié)點饲握,所以不需要像單向鏈表中一樣索引目的節(jié)點的前驅(qū)節(jié)點,而是可以通過目標(biāo)節(jié)點直接獲得蚕键。
刪除

在雙向鏈表中救欧,第一個節(jié)點的前驅(qū)節(jié)點不是頭結(jié)點,而是指向一個空指針锣光。同樣的笆怠,最后一個節(jié)點的后驅(qū)指向了一個空指針。
四誊爹、循環(huán)鏈表
1.循環(huán)鏈表與雙向鏈表相似蹬刷,不同的地方在于:在鏈表的尾部增加一個指向頭結(jié)點的指針,頭結(jié)點也增加一個指向尾節(jié)點的指針频丘,以及第一個節(jié)點指向頭節(jié)點的指針办成,從而更方便索引鏈表元素。

循環(huán)鏈表

2.插入搂漠、刪除
循環(huán)鏈表的插入和刪除操作與雙向鏈表的實現(xiàn)方式一樣迂卢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市桐汤,隨后出現(xiàn)的幾起案子而克,更是在濱河造成了極大的恐慌,老刑警劉巖怔毛,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件员萍,死亡現(xiàn)場離奇詭異,居然都是意外死亡拣度,警方通過查閱死者的電腦和手機碎绎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抗果,“玉大人筋帖,你說我怎么就攤上這事〗颜牛” “怎么了幕随?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵蚁滋,是天一觀的道長宿接。 經(jīng)常有香客問我赘淮,道長,這世上最難降的妖魔是什么睦霎? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任梢卸,我火速辦了婚禮,結(jié)果婚禮上副女,老公的妹妹穿的比我還像新娘蛤高。我一直安慰自己,他們只是感情好碑幅,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布戴陡。 她就那樣靜靜地躺著,像睡著了一般沟涨。 火紅的嫁衣襯著肌膚如雪恤批。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天裹赴,我揣著相機與錄音喜庞,去河邊找鬼。 笑死棋返,一個胖子當(dāng)著我的面吹牛延都,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播睛竣,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼晰房,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了射沟?” 一聲冷哼從身側(cè)響起嫉你,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎躏惋,沒想到半個月后幽污,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡簿姨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年距误,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扁位。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡准潭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出域仇,到底是詐尸還是另有隱情刑然,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布暇务,位于F島的核電站泼掠,受9級特大地震影響怔软,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜择镇,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一挡逼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧腻豌,春花似錦家坎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至苏携,卻和暖如春订框,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兜叨。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工穿扳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人国旷。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓矛物,卻偏偏與公主長得像,于是被迫代替她去往敵國和親跪但。 傳聞我的和親對象是個殘疾皇子履羞,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

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