一、鏈表的概念
為了方便同學(xué)們理解,我畫(huà)了一個(gè)圖:
上條是單向鏈表,下面是雙向鏈表。
兩者區(qū)別是啥呢?
從查找速度來(lái)講,雙向的會(huì)更快些,但是缺點(diǎn)也是占用空間大些。
所以如果項(xiàng)目里面對(duì)空間要求高的話,就用前者,回頭用時(shí)間換空間。
按照邏輯結(jié)構(gòu)來(lái)說(shuō),他們應(yīng)該是一個(gè)挨著一個(gè)的,但是在實(shí)際存儲(chǔ)當(dāng)中并沒(méi)有像這樣連續(xù),可能會(huì)散落在各個(gè)內(nèi)存區(qū)里面。
關(guān)于鏈表的作用就不在這里贅述了,感興趣的面向搜索引擎提問(wèn)吧。
二、Go 里面的鏈表操作
go 的標(biāo)準(zhǔn)庫(kù)里面其實(shí)為我們提供了一個(gè)鏈表功能,在我們的 container/list 包里面。
所以很多時(shí)候我們不需要再手動(dòng)實(shí)現(xiàn),可以這樣使用:
他為我們提供了很多方法可以使用:
比如插入到最后面,還是哪個(gè)的后面,感興趣的可以去詳細(xì)看下。
上面的代碼執(zhí)行結(jié)果是:
二、一些常用操作
1、移動(dòng)交換
假如我們需要調(diào)換 2 和 3 的位置:
我們可以使用他的 MoveAfter 方法進(jìn)行移動(dòng)。
執(zhí)行結(jié)果:
2、插入
加入我們需要在 2 后面插入一個(gè) 2.5:
我們可以使用 InsertAfter 方法進(jìn)行操作。
執(zhí)行結(jié)果為:
更多的操作方法就不一一舉例了哈。
審核編輯:劉清
-
內(nèi)存
+關(guān)注
關(guān)注
8文章
2903瀏覽量
73547 -
鏈表
+關(guān)注
關(guān)注
0文章
80瀏覽量
10520 -
go語(yǔ)言
+關(guān)注
關(guān)注
1文章
156瀏覽量
8996
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論