最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C/C++編程筆記:數(shù)據(jù)結(jié)構(gòu)難點之單鏈表!一篇文章帶你突破難點

2020-09-27 22:22 作者:C語言編程__Plus  | 我要投稿

數(shù)據(jù)結(jié)構(gòu)之單鏈表

單鏈表是一種鏈式存取的數(shù)據(jù)結(jié)構(gòu),用一組地址任意的存儲單元 存放線性表中的數(shù)據(jù)元素 。鏈表中的數(shù)據(jù)是以結(jié)點來表示的,每個結(jié)點的構(gòu)成:元素( 數(shù)據(jù)元素 的映象) + 指針 (指示后繼元素存儲位置),元素就是存儲數(shù)據(jù)的存儲單元,指針就是連接每個結(jié)點的地址數(shù)據(jù)。


介紹:單鏈表就是結(jié)構(gòu)體變量和結(jié)構(gòu)體變量 通過指針成員連接在一起,故:單鏈表就是多個結(jié)構(gòu)體變量。

鏈表分類

根據(jù)鏈表有無頭結(jié)點,指針是是否雙向,鏈表是否環(huán)狀,我們把鏈表分為以下幾種:

帶頭結(jié)點單鏈表。

無頭結(jié)點單鏈表。

雙向鏈表。

雙向循環(huán)鏈表。


單鏈表操作

帶頭結(jié)點的鏈式結(jié)構(gòu)主要有以下常規(guī)操作:

創(chuàng)建鏈表:創(chuàng)建頭結(jié)點。

創(chuàng)建結(jié)點:為插入做準備。

表頭插入。

表尾插入。

指定位置插入。

表頭刪除。

表尾刪除。

指定位置刪除。

鏈表的打印。

插曲:指針如何當做變量使用?

通過賦值變量的地址。

通過動態(tài)內(nèi)存申請。

代碼如下:


結(jié)構(gòu)體定義

數(shù)據(jù)結(jié)構(gòu)中的結(jié)構(gòu)體設(shè)計, 一般都是單一個體的抽象,即把整個結(jié)構(gòu)拆開的零件。


創(chuàng)建表頭

單鏈表就是結(jié)構(gòu)體變量和結(jié)構(gòu)體變量 通過指針成員連接在一起,故如果定義一個函數(shù)去創(chuàng)建鏈表,其實就是創(chuàng)建表頭,表頭也是一個結(jié)構(gòu)體變量,故就是創(chuàng)建結(jié)構(gòu)體變量的過程,然后數(shù)據(jù)結(jié)構(gòu)一般習慣用指針去表示,指針變成變量,故通過動態(tài)內(nèi)存是申請即可變成變量,最后只需要給變量初始化即可。

單鏈表的創(chuàng)建表頭源碼:


創(chuàng)建節(jié)點

創(chuàng)建結(jié)點單獨用一個函數(shù)封裝,為插入節(jié)點做準備,結(jié)點也是結(jié)構(gòu)體變量,相對于表頭只是多了一個數(shù)據(jù)域,而數(shù)據(jù)可以形參傳進去,這樣就可以實現(xiàn)數(shù)據(jù)加工,加工為一個結(jié)點數(shù)據(jù)。

單鏈表的結(jié)點創(chuàng)建代碼:


表頭法插入

因為是一個有表頭的鏈表,故表頭位置不可改變,插入結(jié)點只能放在表頭后面。表頭就像講臺,學生座位怎么排,都只能放在講臺后面,不能排到講臺前面去。

單鏈表的表頭插入代碼:


表尾插入

表尾插入,首先找到表尾,然后把插入的結(jié)點放到表尾結(jié)點后面即可。

單鏈表的表尾插入代碼:


指定位置插入

只要找到指定位置與指定位置前面哪個結(jié)點,我想每一個同學都應該會插入結(jié)點。指定位置插入問題轉(zhuǎn)換為找到指定位置以及指定位置的前面哪個結(jié)點。

單鏈表的指定位置插入代碼實現(xiàn):


鏈表遍歷

因為做的是一個有表頭的鏈表 ,故打印數(shù)據(jù)的時候是從第二個節(jié)點開始打印,如果存在數(shù)據(jù),打印數(shù)據(jù),打印完后往下一個結(jié)點移動即可。就像公交車一樣,過一站下一批乘客。

單鏈表的遍歷實現(xiàn):


測試檢驗

首先表頭插入數(shù)據(jù)1,在表頭插入數(shù)據(jù)3 ,鏈表中數(shù)據(jù)為 3 1。

在指定1前面插入2,鏈表中數(shù)據(jù)為3 2 1。

最后表尾插入0,鏈表中數(shù)據(jù)為3 2 1 0。

故打印結(jié)果是3 2 1 0

代碼示例:

另外如果你想更好的提升你的編程能力,學好C語言C++編程!彎道超車,快人一步!

分享(源碼、項目實戰(zhàn)視頻、項目筆記,基礎(chǔ)入門教程)

歡迎轉(zhuǎn)行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!

學習C/C++編程知識,提升C/C++編程能力,歡迎關(guān)注UP一起來成長!
另外,UP在主頁上傳了一些學習C/C++編程的視頻教程,有興趣或者正在學習的小伙伴一定要去看一看哦!會對你有幫助的~

C/C++編程筆記:數(shù)據(jù)結(jié)構(gòu)難點之單鏈表!一篇文章帶你突破難點的評論 (共 條)

分享到微博請遵守國家法律
会宁县| 黄大仙区| 隆昌县| 灵丘县| 司法| 车险| 临洮县| 拉孜县| 华容县| 新闻| 定兴县| 黔西县| 增城市| 南京市| 台中市| 蒙阴县| 宽甸| 凤城市| 潜江市| 新民市| 得荣县| 永福县| 阿拉善左旗| 临江市| 瓮安县| 固原市| 麻城市| 栾城县| 囊谦县| 鹿泉市| 丁青县| 旺苍县| 色达县| 诸暨市| 吐鲁番市| 邯郸县| 肥城市| 镇巴县| 汝州市| 文安县| 平舆县|