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

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

C/C++數(shù)據(jù)結(jié)構(gòu):隊(duì)列結(jié)構(gòu)最全解析!帶你零基礎(chǔ)入門隊(duì)列結(jié)構(gòu)

2020-09-30 22:11 作者:C語(yǔ)言編程__Plus  | 我要投稿

前言

上一章節(jié)針對(duì)于C語(yǔ)言棧結(jié)構(gòu)做了解析,不清楚的可以回顧一下。

本章節(jié)主要針對(duì)于C語(yǔ)言的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)隊(duì)列做以解析。


數(shù)據(jù)結(jié)構(gòu)之隊(duì)列

隊(duì)列是一種特殊的 線性表 ,特殊之處在于它只允許在表的前端(front)進(jìn)行刪除操作,而在表的后端(rear)進(jìn)行插入操作,和棧一樣,隊(duì)列是一種操作受限制的線性表。進(jìn)行插入操作的端稱為隊(duì)尾,進(jìn)行刪除操作的端稱為隊(duì)頭。

故隊(duì)列基本操作如下:

(1)創(chuàng)建隊(duì)列

(2)入隊(duì)

(3)出隊(duì)

(4)判斷隊(duì)列是否為NULL

(5)獲取隊(duì)頭元素

數(shù)據(jù)結(jié)構(gòu)之隊(duì)列分類

根據(jù)隊(duì)列實(shí)現(xiàn)方式與出隊(duì)方式,我們可以把棧分為以下三種描述方式:

(1)原生數(shù)組隊(duì)列

(2)動(dòng)態(tài)申請(qǐng)內(nèi)存的數(shù)組描述(普通隊(duì)列和循環(huán)隊(duì)列)

(3)鏈?zhǔn)浇Y(jié)構(gòu)描述


優(yōu)先隊(duì)列

原生數(shù)組描述隊(duì)列

數(shù)組描述棧,只不過(guò)多了先進(jìn)先出的限制而已,它是靜態(tài)分配的,即使用前,它的內(nèi)存就已經(jīng)以數(shù)組的形式分配好了,所以在使用時(shí),需要注意隊(duì)頭隊(duì)尾的標(biāo)記。

原生數(shù)組描述隊(duì)列實(shí)現(xiàn)試題案例:逆序整數(shù)


動(dòng)態(tài)數(shù)組描述隊(duì)列

動(dòng)態(tài)申請(qǐng)內(nèi)存的數(shù)組描述不再采用上述實(shí)用性的方法了,而是通過(guò)封裝相關(guān)隊(duì)列函數(shù)去描述這種結(jié)構(gòu)。這是寫數(shù)據(jù)結(jié)構(gòu)的一種大致方法。

1.結(jié)構(gòu)體定義與隊(duì)列的創(chuàng)建過(guò)程:

結(jié)構(gòu)體定義:描述隊(duì)列的屬性:隊(duì)頭標(biāo)記,隊(duì)尾標(biāo)記,隊(duì)列空間

創(chuàng)建隊(duì)列其實(shí)就是創(chuàng)建結(jié)構(gòu)體變量

具體代碼


ps:隊(duì)頭和隊(duì)尾頂標(biāo)記初始值一般都是-1 ,為了滿足隊(duì)列標(biāo)記和數(shù)組下標(biāo)一致

2.入隊(duì)操作

注意: 我們的實(shí)現(xiàn)是將最新的元素放在了數(shù)組的末尾, 那么數(shù)組末尾的元素就是我們的隊(duì)列隊(duì)尾元素,故可以使用隊(duì)尾標(biāo)記去計(jì)算隊(duì)列中的元素個(gè)數(shù)。然后每次入隊(duì)后,隊(duì)尾標(biāo)記往后移動(dòng)。

具體實(shí)現(xiàn)代碼:


3.出隊(duì)操作和獲取隊(duì)頭元素

注意: 出隊(duì)操作應(yīng)該是將隊(duì)頭元素刪除,由于數(shù)組實(shí)現(xiàn)的隊(duì)列無(wú)法刪除,故只能把隊(duì)頭標(biāo)記往隊(duì)尾移動(dòng),簡(jiǎn)稱為一種"偽刪除"。

具體實(shí)現(xiàn)代碼:


4.判斷棧是否為空

用戶判斷棧中是否有元素,通過(guò)隊(duì)尾和隊(duì)頭標(biāo)記去做即可

具體實(shí)現(xiàn)代碼:


動(dòng)態(tài)申請(qǐng)內(nèi)存的數(shù)組描述隊(duì)列測(cè)試代碼


ps:循環(huán)隊(duì)列是通過(guò)取余形成的循環(huán),這里不過(guò)多介紹,有興趣的可以看看相關(guān)資料。

鏈?zhǔn)疥?duì)列

鏈?zhǔn)疥?duì)列: 鏈表的尾插法即可


希望對(duì)大家有幫助!

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

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

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

學(xué)習(xí)C/C++編程知識(shí),提升C/C++編程能力,歡迎關(guān)注UP一起來(lái)成長(zhǎng)!
另外,UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~

編程學(xué)習(xí)軟件分享:

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


C/C++數(shù)據(jù)結(jié)構(gòu):隊(duì)列結(jié)構(gòu)最全解析!帶你零基礎(chǔ)入門隊(duì)列結(jié)構(gòu)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
讷河市| 太仓市| 斗六市| 宁武县| 衡东县| 德庆县| 平阴县| 桑日县| 定襄县| 西峡县| 陆河县| 苍南县| 东乡| 宁河县| 肇东市| 尖扎县| 峨山| 莎车县| 嘉义县| 西丰县| 阜阳市| 湾仔区| 曲麻莱县| 温宿县| 彭水| 剑川县| 南雄市| 达尔| 武山县| 马尔康县| 防城港市| 大城县| 白银市| 临夏县| 澄城县| 驻马店市| 灵台县| 高陵县| 信宜市| 江口县| 汝阳县|