一起talk C栗子吧(第十六回:C語言執行個體--棧一)

來源:互聯網
上載者:User

標籤:棧


各位看官們,大家好,從今天開始,我們講大型章回體科技小說 :C栗子,也就是C語言執行個體。閑話休提,

言歸正轉。讓我們一起talk C栗子吧!


看官們,上一回中咱們說的是雙向鏈表的例子,這一回咱們說的例子是:棧。


什麼是棧?我們聽過龍門客棧,你這個是哪家客棧?我還沒有說,台下已經有客官在問了。看官們,棧是

類似我們在前面幾回中說過的鏈表,它也是用來存放資料的一種抽象的資料結構。因為比較抽象,咱們還

是舉個現實生活中的例子來說明吧。

我們出去旅遊時通常會拿一個行李箱存放自己的物品,比如衣服,鞋子電腦,相機等。出發前,我們會把

這些東西依次放到行李箱中,首先會把不容易壓壞的物品放到箱底,比如衣服。然後把容易壓壞的物品放

到上面,比如電腦和相機。當我們到達目的地時,會取出行李箱中的物品。首先拿出放在箱子上面的電腦

和相機,最後拿出放在箱子底部的衣服。大家看看,拿出物品的順序和存放物品的順序正好相反。最後放

進去的電腦和相機等易壓碎的物品最先拿出來,最先放進去的衣服等不易壓碎的物品最後拿出來。這個行

李箱就好比一個存放資料的棧,箱子裡面的物品好比資料,從箱子裡拿物品好比操作資料,拿物品要先拿

最後存放的物品,操作資料也要先操作最後放到棧中的資料。就是說最先存放到棧中的資料最後被拿出。

這便是棧的特點:先進後出。


看官們,和鏈表一樣,棧也有兩種實現方式:順序存放和鏈式存放。我們會分別舉例子說明。棧有兩個基

本的操作:出棧和入棧。入棧就是把資料存放到棧中,出棧就是把資料從棧中拿出來。入棧和出棧這兩個

操作要符合棧“先進後出”的特點。


看官們,本文中就不寫代碼了,詳細的代碼放到了我的資源中,大家可以點選連結下載使用。關於代碼中

有一些需要注意的地方和大家說一下:

  • 棧的順序儲存是通過一個全域數組實現的,棧的大小就也就是數組的長度,可以自己定義。
  • 入棧時要確認棧是否已經満了,不然會有溢出。我在代碼中多放了一個空間可以避免溢出。
  • 出棧時要確認棧是否已經空了,不然會有溢出。我在代碼中通過多放了一個變數size可以避免溢出。


各位看官,關於棧的例子咱們就說到這裡。欲知後面還有什麼例子,且聽下回分解。


一起talk C栗子吧(第十六回:C語言執行個體--棧一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.