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

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

C/C++數(shù)據(jù)結(jié)構(gòu):棧結(jié)構(gòu)解析,最簡單解析,讓你一遍就會

2020-09-29 21:57 作者:C語言編程__Plus  | 我要投稿

上一章節(jié)針對于C語言最基本的數(shù)據(jù)結(jié)構(gòu)鏈?zhǔn)浇Y(jié)構(gòu)體做了解析,不清楚的可以回顧一下。本章節(jié)主要針對于C語言的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)棧做以解析。

數(shù)據(jù)結(jié)構(gòu)之棧

棧(stack)又名堆棧,它是一種運(yùn)算受限的線性表。限定僅在表尾進(jìn)行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個棧插入新元素又稱作進(jìn)棧、入?;驂簵?,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個棧刪除元素又稱作出?;蛲藯?,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。


故?;静僮魅缦?

(1)創(chuàng)建棧

(2)入棧

(3)出棧

(4)判斷棧是否為NULL

(5)返回棧頂元素


數(shù)據(jù)結(jié)構(gòu)之棧分類

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

原生數(shù)組描述

動態(tài)申請內(nèi)存的數(shù)組描述

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

原生數(shù)組描述棧

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

舉個例子,把十進(jìn)制的數(shù)字5轉(zhuǎn)二進(jìn)制的數(shù)字,過程大概是這樣:


原生數(shù)組描述棧實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換代碼


動態(tài)數(shù)組實(shí)現(xiàn)棧

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

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

結(jié)構(gòu)體定義:描述棧的屬性棧:棧容量,棧頂標(biāo)記

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

具體代碼


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

2.入棧操作

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

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


3.出棧操作和獲取棧頂元素

注意: 出棧操作應(yīng)該是將棧頂?shù)脑貏h除,由于數(shù)組實(shí)現(xiàn)的棧無法刪除,故只能吧棧頂標(biāo)記往前移動,簡稱為一種"偽刪除"。

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


4.判斷棧是否為空

用戶判斷棧中是否有元素,通過棧頂標(biāo)記去做即可

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


動態(tài)申請內(nèi)存的數(shù)組描述棧實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換代碼


鏈?zhǔn)綏?/strong>

鏈?zhǔn)綏#烘湵淼念^插法即可

這個不做詳細(xì)分析了,希望對大家有幫助!

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

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

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

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

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

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


C/C++數(shù)據(jù)結(jié)構(gòu):棧結(jié)構(gòu)解析,最簡單解析,讓你一遍就會的評論 (共 條)

分享到微博請遵守國家法律
乐都县| 遂平县| 本溪市| 牙克石市| 托克托县| 曲松县| 乌兰浩特市| 肥东县| 开原市| 天津市| 永安市| 汉沽区| 屯昌县| 鄯善县| 密山市| 南靖县| 辉南县| 嘉祥县| 马尔康县| 白水县| 濮阳县| 吕梁市| 尚志市| 嘉黎县| 三原县| 大英县| 时尚| 桂东县| 府谷县| 疏附县| 泽州县| 喀喇沁旗| 柯坪县| 松潘县| 黔西| 英吉沙县| 广平县| 梁河县| 体育| 巴中市| 敖汉旗|