日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

c++怎么实现数字数组的删除数字_C/C++数据结构:栈结构解析,最简单解析,让你一遍就会...

發(fā)布時間:2024/7/23 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++怎么实现数字数组的删除数字_C/C++数据结构:栈结构解析,最简单解析,让你一遍就会... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

上一章節(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)又名堆棧,它是一種運算受限的線性表。限定僅在表尾進(jìn)行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個棧插入新元素又稱作進(jìn)棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。

故棧基本操作如下:

(1)創(chuàng)建棧

(2)入棧

(3)出棧

(4)判斷棧是否為NULL

(5)返回棧頂元素

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

根據(jù)實現(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ù)組描述棧實現(xiàn)進(jìn)制轉(zhuǎn)換代碼

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

動態(tài)申請內(nèi)存的數(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)建棧其實就是創(chuàng)建結(jié)構(gòu)體變量

具體代碼

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

2.入棧操作

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

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

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

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

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

4.判斷棧是否為空

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

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

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

鏈?zhǔn)綏?/strong>

鏈?zhǔn)綏?#xff1a;鏈表的頭插法即可

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

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

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

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

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

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

C語言C++編程學(xué)習(xí)交流圈子,點擊下方【了解更多】獲取更多資料!

總結(jié)

以上是生活随笔為你收集整理的c++怎么实现数字数组的删除数字_C/C++数据结构:栈结构解析,最简单解析,让你一遍就会...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。