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

來源:互聯網
上載者:User

標籤:棧


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

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


看官們,上一回中咱們說的是棧和特點和基本操作,最後通過順序儲存的方式實現了棧,這一回咱們繼續

說棧,不過咱們這一回說的是棧的鏈式儲存方式。


在代碼中通過雙向鏈表來實現棧的鏈式儲存。入棧操作沿著表頭到表尾的方向進行,出棧操作與其正好相

反(就把它當作雙向鏈表的一個使用執行個體吧)。棧的結點可以看作是鏈表中的結點,對棧的操作,可以看

作是在鏈表中進行插入或者刪除結點操作。只不過插入或者刪除時要遵循棧“先進後出"的特點。棧的類型

中增加了一個size成員,可以通過它方便地得出棧的長度。與棧的順序儲存方式相比,多了一個銷毀棧的

功能。因為棧中的空間都是動態分配得來的,每次入棧操作都會分配一塊記憶體空間,與其相反,每次出棧

操作都會把記憶體空間釋放掉。但是在實際程式中入棧和出棧並不是成對出現的,也就是說,如果使用完棧

後,沒有通過出棧操作來釋放動態空間,那麼就會造成記憶體流失。所以我增加了銷毀棧的功能,以方便在

程式的最後檢查棧中動態分配來的空間是否被釋放。


棧的鏈式儲存與棧的順序儲存相比,最大的優點就是不需要事Crowdsourced Security Testing道棧的長度,只要記憶體空間足夠大就能

存放足夠多的元素到棧中。不過,它也有缺點,那就是入棧和出棧操作要複雜,而且效率低。總之,在實

際的程式中如果事Crowdsourced Security Testing道棧的長度,可以使用棧的順序儲存,如果與事先不知道棧的長度,那麼可以使用

棧的鏈式儲存,這樣比較靈活一些。


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


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

一起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.