五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

C/C++編程筆記:C語言詳解"雙向循環(huán)鏈表"的基本操作(上)

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

1.雙向鏈表的定義

單向鏈表特點:

1.我們可以輕松的到達下一個節(jié)點, 但是回到前一個節(jié)點是很難的.

2.只能從頭遍歷到尾或者從尾遍歷到頭(一般從頭到尾)


雙向鏈表特點:

1.每次在插入或刪除某個節(jié)點時, 需要處理四個節(jié)點的引用, 而不是兩個. 實現(xiàn)起來要困難一些

2.相對于單向鏈表, 必然占用內(nèi)存空間更大一些.

3.既可以從頭遍歷到尾, 又可以從尾遍歷到頭

雙向鏈表的定義:

雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個數(shù)據(jù)結(jié)點中都有兩個指針,分別指向直接后繼和直接前驅(qū)。所以,從雙向鏈表中的任意一個結(jié)點開始,都可以很方便地訪問它的前驅(qū)結(jié)點和后繼結(jié)點。下圖為雙向鏈表的結(jié)構(gòu)圖。


從上中可以看到,雙向鏈表中各節(jié)點包含以下 3 部分信息:

指針域:用于指向當(dāng)前節(jié)點的直接前驅(qū)節(jié)點;

數(shù)據(jù)域:用于存儲數(shù)據(jù)元素。

指針域:用于指向當(dāng)前節(jié)點的直接后繼節(jié)點;


雙向循環(huán)鏈表的定義:

雙向鏈表也可以進行首尾連接,構(gòu)成雙向循環(huán)鏈表,如下圖所示

在創(chuàng)建鏈表時,只需要在最后將收尾相連即可(創(chuàng)建鏈表代碼中已經(jīng)標(biāo)出)。其他代碼稍加改動即可。


雙鏈表的節(jié)點結(jié)構(gòu)用 C 語言實現(xiàn)為:


2.雙向鏈表的創(chuàng)建

同單鏈表相比,雙鏈表僅是各節(jié)點多了一個用于指向直接前驅(qū)的指針域。因此,我們可以在單鏈表的基礎(chǔ)輕松實現(xiàn)對雙鏈表的創(chuàng)建。

需要注意的是,與單鏈表不同,雙鏈表創(chuàng)建過程中,每創(chuàng)建一個新節(jié)點,都要與其前驅(qū)節(jié)點建立兩次聯(lián)系,分別是:

將新節(jié)點的 prior 指針指向直接前驅(qū)節(jié)點;

將直接前驅(qū)節(jié)點的 next 指針指向新節(jié)點;

這里給出創(chuàng)建雙向鏈表的 C 語言實現(xiàn)代碼:


3.雙向鏈表的插入

根據(jù)數(shù)據(jù)添加到雙向鏈表中的位置不同,可細分為以下 3 種情況:

1.添加至表頭

將新數(shù)據(jù)元素添加到表頭,只需要將該元素與表頭元素建立雙層邏輯關(guān)系即可。

換句話說,假設(shè)新元素節(jié)點為 temp,表頭節(jié)點為 head,則需要做以下 2 步操作即可:

temp->next=head; head->prior=temp;

將 head 移至 temp,重新指向新的表頭;

將新元素 7 添加至雙鏈表的表頭,則實現(xiàn)過程如下圖所示:


2.添加至表的中間位置

同單鏈表添加數(shù)據(jù)類似,雙向鏈表中間位置添加數(shù)據(jù)需要經(jīng)過以下 2 個步驟,如下圖所示:

新節(jié)點先與其直接后繼節(jié)點建立雙層邏輯關(guān)系;

新節(jié)點的直接前驅(qū)節(jié)點與之建立雙層邏輯關(guān)系;


3.添加至表尾

與添加到表頭是一個道理,實現(xiàn)過程如下:

找到雙鏈表中最后一個節(jié)點;

讓新節(jié)點與最后一個節(jié)點進行雙層邏輯關(guān)系;


本次分享就到這里了!學(xué)習(xí)知識并不能一蹴而就,一步步來喲~

下篇文章為大家分享雙向鏈表的刪除以及查找,一定要看哦!

另外如果你想更好的提升你的編程能力,學(xué)好C語言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~

UP在主頁上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會對你有幫助的~

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

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

編程學(xué)習(xí)書籍分享:


編程學(xué)習(xí)視頻分享:




C/C++編程筆記:C語言詳解"雙向循環(huán)鏈表"的基本操作(上)的評論 (共 條)

分享到微博請遵守國家法律
治县。| 泗洪县| 齐河县| 英德市| 洪洞县| 长丰县| 娱乐| 富顺县| 澄江县| 山东省| 景德镇市| 浦东新区| 井陉县| 曲阜市| 南华县| 随州市| 原平市| 大冶市| 济阳县| 锡林浩特市| 北辰区| 全椒县| 嘉禾县| 汶上县| 成安县| 阿巴嘎旗| 黄浦区| 习水县| 安岳县| 平武县| 砚山县| 团风县| 郸城县| 丹江口市| 天镇县| 崇左市| 巧家县| 剑阁县| 蒙自县| 罗甸县| 百色市|