[數(shù)據(jù)結(jié)構(gòu)]第二章線性表(3)——單鏈表

單鏈表

image-20200618221439465
image-20200618221516210

什么是單鏈表?

image-20200618221658525

單鏈表的定義

image-20200618221959788

別名

image-20200618222203154
image-20200618222313544

注釋:或者可以理解為指向頭節(jié)點的指針既可以表示整個單鏈表也可以表示頭節(jié)點,為了便于區(qū)分才建議使用 typedef 進(jìn)行重命名,以方便區(qū)別其不同的含義

頭插法建立單鏈表

image-20200619095117732

單鏈表的基本操作

單鏈表的初始化

不帶頭節(jié)點的單鏈表的初始化

image-20200619095400757

帶頭節(jié)點的單鏈表的初始化

image-20200619095545238

兩者區(qū)別是什么?

image-20200619095738329

總結(jié)

image-20200619095821536

插入和刪除

image-20200619104612536

插入

按位序插入(帶頭節(jié)點的單鏈表)
image-20200619105030154

具體實現(xiàn)

分析在表頭插入

image-20200619105401211

分析為什么不能顛倒

image-20200619105451377

分析在表中插入

image-20200619105800111

分析在表尾插入

image-20200619110039686

分析插入位置超出表長

image-20200619110159253

總結(jié)

image-20200619110309541
按位插入(不帶頭節(jié)點)
image-20200619110418752

具體實現(xiàn)

image-20200619110547637

結(jié)論:不帶頭節(jié)點的單鏈表,寫代碼更不方便,除非特別聲明,默認(rèn)推薦使用帶頭節(jié)點的實現(xiàn)方式,還有要注意在考試中帶頭、不帶頭都有可能考察,注意審題。

指定節(jié)點的后插操作
image-20200619111032277

指定節(jié)點的前插操作

通過傳入頭指針實現(xiàn)前插

image-20200619111607840

先進(jìn)行后插,然后交換前后數(shù)據(jù),以此實現(xiàn)前插

image-20200619111716141
image-20200619111814873

刪除

帶有頭節(jié)點版本
image-20200619111915877

具體實現(xiàn)

image-20200619135048885
刪除指定結(jié)點
image-20200619135226089

如果P是最后一個節(jié)點,咋辦?

只能從表頭表頭依次尋找前驅(qū),時間復(fù)雜度O(n)

image-20200619135401028

單鏈表的局限性:無法逆向檢索??!

總結(jié)

image-20200619135623242

查找

按位查找(帶頭節(jié)點)
image-20200619152704151
按值查找(帶頭節(jié)點)
image-20200619153147639
求表的長度(帶頭節(jié)點)
image-20200619153411974

總結(jié)

image-20200619153525681

單鏈表的建立方法

image-20200619153742876

PS:找不到對象就娶一個數(shù)據(jù)元素吧!哈哈

尾插法

第一種方法:

image-20200619154012867

問題:時間復(fù)雜度太高!!可以用一個指針記錄最后一個數(shù)據(jù)元素的位置來優(yōu)化時間。

優(yōu)化之后:

image-20200619172815577

頭插法

image-20200619172945304

具體實現(xiàn):

image-20200619173800669

總結(jié)

image-20200619173925151
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容