日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

语言zzuli链表遍历_趣味图解算法之链表

發布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 语言zzuli链表遍历_趣味图解算法之链表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

閱讀本文約需要10分鐘,您可以先關注我們或收藏本文,避免下次無法找到。

之前我們通過趣味圖解法為大家介紹了二分查找的算法,今天我們一起來學習日常工作中經常能用到的算法鏈表。

成哥就是通過這個算法解決了網絡ACL策略配置前后插入下發的問題。

01 簡介

鏈表就是鏈式存儲的線性表,它最大的優點在于可以有效利用零碎的內存空間,根據鏈表指針域的不同鏈表分為單向鏈表、雙向鏈表等。

其實Python語言的列表類型的工作原理就是鏈表。本文章中我們將通過Python來模擬鏈表結構。但由于Python沒有指針概念,我們將通過模擬指針的方法來實現鏈表。

02 單向鏈表

(1)單向鏈表簡介

鏈表的每個元素不僅要存儲這個元素值還要存儲與這個元素相連的元素的指針值,這樣才能實現鏈表的串聯。

單向鏈表的每個元素包含一個本身的值和一個指向下一個數的指針。

這邊要注意一下鏈表最后一個元素是沒有指針的所以其指針為空指針。

如上圖,從第一個元素開始,跟著指針箭頭走直到沒有存儲下一個元素指針的最后一個數60為止,就完成了單鏈表的遍歷。

好了我們現在了解了單鏈表的大概實現原理,現在我們看看如何用python代碼來實現鏈表,具體代碼如下:

輸出結果如下:

(2)單向鏈表元素插入

上面章節我們了解了單向鏈表的實現原理,本章節我們看看單向鏈表怎么添加元素。如下圖我們該怎么把元素35插入30與40這兩個元素之間呢?

好了不賣關了我們可以先把35元素的指針指向它所要插入的位置后面一個元素40,如下圖所示

接著把需要插入元素前面的元素指針指向該元素,也就是把30的指針指向35,這樣就完成了鏈表的插入如下圖所示

這時肯定會有讀者問為什么要先把新插入元素的指針指向后一個元素,可不可以先把前一個元素30的指針指向35,其實答案是不可以的,當我們先把元素30的指針指向35,這時新元素35還沒指向任何元素這將導致鏈表的斷鏈,具體如下圖所示:

下面我們看看如何通過代碼實現鏈表元素的插入吧,代碼示例如下:

輸出結果如下:

(3)單向鏈表元素刪除

如下圖我們可以發現單向鏈表元素刪除非常簡單,直接通過當前元素指向下一個元素的指針來找到下一個元素位置,然后把這個位置賦值給當前元素的指針,這樣當前元素的指針就會跳過下一個元素直接連接了下下個元素,這就完成了元素的刪除具體如下圖:

單鏈表元素的刪除具體代碼實現如下:

代碼輸入如下,可以發現元素50已經被刪除,同時鏈表也可以正常按順序輸出:

03 雙向鏈表

(1)雙向鏈表簡介

上面我們講了單鏈表,現在我們一起來學習一下鏈表的另一種類型雙鏈表,雙鏈表的每個元素是由它的值和兩個指針組成,一個指針指向上一個元素,一個指針指向下一個元素。雙鏈表比起單鏈表的優勢是可以進行雙向遍歷,如下圖所示:

下面我們就通過Python代碼來模擬一下雙向鏈表的雙向的鏈表輸出

代碼運行結果輸出如下:

(2)雙向鏈表元素插入

通過上面章節我們了解了雙向鏈表的實現原理,現在我們再來看看對雙向鏈表進行元素插入吧。

如上圖第一步我們先對新插入的元素的兩個指針賦值,分別將它們指向插入位置的后一個元素與前一個元素,接著第二步將后一個元素前指向指針與前一個元素后指向指針賦值指向新插入的元素,這樣我們就完成了雙向鏈表的元素插入。雙鏈表比起單鏈表好處就是可以通過知道上一個元素的位置來插入新元素,也可以通過知道下一個元素的位置來插入新元素。在日常工作中雙向鏈表適用范圍比單向鏈表廣,之前我們項目中就是用的雙向鏈表來對ACL策略進行配置順序調整的。

下面我們通過Python代碼來實現雙向鏈表的元素插入吧

代碼執行結果如下,發現鏈表插入元素35后正反向都能正確進行遍歷

(3)雙向鏈表元素刪除

雙鏈表的刪除其實和單向鏈表類似,我們要知道刪除元素的前一個數的位置,然后通過要刪除的元素來確定下下一個元素的位置,最后直接連接要刪除的元素的前后兩個數就完成了刪除,如下圖所示:

現在我們看看如何通過代碼實現雙向鏈表的元素刪除吧

代碼輸入結果如下,發現元素35已經正確的刪除了

至此我們的鏈表算法就講完了,如果大家喜歡不要忘了點擊@IT管理局關注、點贊與收藏哦!

本局精彩文章:

  • 趣味圖解算法之二分查找
  • Wireshark數據包分析三板斧
  • IT工程師都需要掌握的容器技術之掃盲篇

總結

以上是生活随笔為你收集整理的语言zzuli链表遍历_趣味图解算法之链表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。