一、鏈表的概念
為了方便同學們理解,我畫了一個圖:
上條是單向鏈表,下面是雙向鏈表。
兩者區(qū)別是啥呢?
從查找速度來講,雙向的會更快些,但是缺點也是占用空間大些。
所以如果項目里面對空間要求高的話,就用前者,回頭用時間換空間。
按照邏輯結構來說,他們應該是一個挨著一個的,但是在實際存儲當中并沒有像這樣連續(xù),可能會散落在各個內存區(qū)里面。
關于鏈表的作用就不在這里贅述了,感興趣的面向搜索引擎提問吧。
二、Go 里面的鏈表操作
go 的標準庫里面其實為我們提供了一個鏈表功能,在我們的 container/list 包里面。
所以很多時候我們不需要再手動實現,可以這樣使用:
他為我們提供了很多方法可以使用:
比如插入到最后面,還是哪個的后面,感興趣的可以去詳細看下。
上面的代碼執(zhí)行結果是:
二、一些常用操作
1、移動交換
假如我們需要調換 2 和 3 的位置:
我們可以使用他的 MoveAfter 方法進行移動。
執(zhí)行結果:
2、插入
加入我們需要在 2 后面插入一個 2.5:
我們可以使用 InsertAfter 方法進行操作。
執(zhí)行結果為:
更多的操作方法就不一一舉例了哈。
審核編輯:劉清
-
內存
+關注
關注
8文章
3156瀏覽量
75877 -
鏈表
+關注
關注
0文章
80瀏覽量
10964 -
go語言
+關注
關注
1文章
159瀏覽量
9529
發(fā)布評論請先 登錄
C語言-鏈表(單向鏈表、雙向鏈表)
Linux內核鏈表詳講(1)
玩轉C語言鏈表-鏈表各類操作詳解
數據結構鏈表的基本操作
淺析RT-Thread中對象容器與雙鏈表的操作
了解Linux通用的雙向循環(huán)鏈表
單鏈表學習的總結(一)
鏈表的代碼免費下載
詳細介紹鏈表在操作系統(tǒng)中定義和使用的方式
單鏈表和雙鏈表的區(qū)別在哪里

評論