單鏈表是一種鏈式存取的數據結構,用一組地址任意的存儲單元 存放線性表中的數據元素 。鏈表中的數據是以結點來表示的,每一個結點的構成:元素( 數據元素 的映象) + 指針 (指示後繼元素存儲位置),元素就是存儲數據的存儲單元,指針就是鏈接每一個結點的地址數據。編程
介紹:單鏈表就是結構體變量和結構體變量 經過指針成員鏈接在一塊兒,故:單鏈表就是多個結構體變量。微信
根據鏈表有無頭結點,指針是是否雙向,鏈表是否環狀,咱們把鏈表分爲如下幾種:數據結構
帶頭結點單鏈表。函數
無頭結點單鏈表。學習
雙向鏈表。測試
雙向循環鏈表。設計
帶頭結點的鏈式結構主要有如下常規操做:3d
建立鏈表:建立頭結點。指針
建立結點:爲插入作準備。視頻
表頭插入。
表尾插入。
指定位置插入。
表頭刪除。
表尾刪除。
指定位置刪除。
鏈表的打印。
插曲:指針如何當作變量使用?
經過賦值變量的地址。
經過動態內存申請。
代碼以下:
數據結構中的結構體設計, 通常都是單一個體的抽象,即把整個結構拆開的零件。
單鏈表就是結構體變量和結構體變量 經過指針成員鏈接在一塊兒,故若是定義一個函數去建立鏈表,其實就是建立表頭,表頭也是一個結構體變量,故就是建立結構體變量的過程,而後數據結構通常習慣用指針去表示,指針變成變量,故經過動態內存是申請便可變成變量,最後只須要給變量初始化便可。
單鏈表的建立表頭源碼:
建立結點單獨用一個函數封裝,爲插入節點作準備,結點也是結構體變量,相對於表頭只是多了一個數據域,而數據能夠形參傳進去,這樣就能夠實現數據加工,加工爲一個結點數據。
單鏈表的結點建立代碼:
由於是一個有表頭的鏈表,故表頭位置不可改變,插入結點只能放在表頭後面。表頭就像講臺,學生座位怎麼排,都只能放在講臺後面,不能排到講臺前面去。
單鏈表的表頭插入代碼:
表尾插入,首先找到表尾,而後把插入的結點放到表尾結點後面便可。
單鏈表的表尾插入代碼:
只要找到指定位置與指定位置前面哪一個結點,我想每個同窗都應該會插入結點。指定位置插入問題轉換爲找到指定位置以及指定位置的前面哪一個結點。
單鏈表的指定位置插入代碼實現:
由於作的是一個有表頭的鏈表 ,故打印數據的時候是從第二個節點開始打印,若是存在數據,打印數據,打印完後往下一個結點移動便可。就像公交車同樣,過一站下一批乘客。
單鏈表的遍歷實現:
首先表頭插入數據1,在表頭插入數據3 ,鏈表中數據爲 3 1。
在指定1前面插入2,鏈表中數據爲3 2 1。
最後表尾插入0,鏈表中數據爲3 2 1 0。
故打印結果是3 2 1 0
代碼示例:
另外若是你想更好的提高你的編程能力,學好C語言C++編程!彎道超車,快人一步!
C語言C++編程學習交流圈子,QQ羣757874045【點擊進入】微信公衆號:C語言編程學習基地
分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)
歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比本身琢磨更快哦!
編程學習軟件分享:
編程學習視頻分享: