日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 21ic電子網
[導讀]棧的介紹 棧(stack),是一種線性存儲結構,它有以下幾個特點: 棧中數據是按照"后進先出(LIFO, Last In First Out)"方式進出棧的。 向棧中添加/刪除數據時,只能從棧頂進行操作。 棧通常包括的三種操作:push、peek、pop。 push——向棧中添加元素。 peek

C語言棧的圖文解析和實現


棧的介紹



棧(stack),是一種線性存儲結構,它有以下幾個特點:

  • 棧中數據是按照"后進先出(LIFO, Last In First Out)"方式進出棧的。

  • 向棧中添加/刪除數據時,只能從棧頂進行操作。


棧通常包括的三種操作:push、peek、pop。

  • push——向棧中添加元素。

  • peek——返回棧頂元素。

  • pop——返回并刪除棧頂元素的操作。


1. 棧的示意圖


C語言棧的圖文解析和實現


棧中的數據依次是30→20→10。


2. 出棧


C語言棧的圖文解析和實現


出棧前:棧頂元素是30。此時,棧中的元素依次是30→20→10。


出棧后:30出棧之后,棧頂元素變成20。此時,棧中的元素依次是20→10。


3. 入棧


C語言棧的圖文解析和實現


入棧前:棧頂元素是20。此時,棧中的元素依次是20→10。


入棧后:40入棧之后,棧頂元素變成40。此時,棧中的元素依次是 40→20→10。



棧的C實現



1
數組實現的棧,并且只能存儲int數據


實現代碼:


C語言棧的圖文解析和實現


運行結果:


tmp=30tmp=20stack size()=3402010


結果說明:該示例中的棧,是通過"數組"來實現的!


由于代碼中已經給出了詳細了注釋,這里就不再對函數進行說明了。僅對主函數main的邏輯進行簡單介紹:

  • 在主函數main中,先將 "10, 20, 30"依次壓入棧。此時,棧的數據是:30→20→10。

  • 接著通過pop()返回棧頂元素;pop()操作并不會改變棧中的數據。此時,棧的數據依然是:30→20→10。

  • 接著通過peek()返回并刪除棧頂元素。peek操作之后,棧的數據是:20→10。接著通過push(40)將40壓

  • 入棧中。push(40)操作之后,棧的數據是:40→20→10。


2
單向鏈表實現的棧,并且只能存儲int數據


實現代碼:


C語言棧的圖文解析和實現


代碼說明:"運行結果" 以及 "主函數main的邏輯"都和"C語言實現一"的一樣。不同的是,該示例中的棧是通過單向鏈表實現的。


3
雙向鏈表實現的棧,并且只能存儲int數據


實現代碼:


(1)雙向鏈表的頭文件(double_link.h)


C語言棧的圖文解析和實現


(2)雙向鏈表的實現文件double_link.c)


C語言棧的圖文解析和實現

C語言棧的圖文解析和實現

C語言棧的圖文解析和實現


(3)雙向鏈表的測試程序(dlink_stack.c)


C語言棧的圖文解析和實現


代碼說明:"運行結果" 以及 "主函數main的邏輯"都和前兩個示例的一樣。不同的是,該示例中的棧是通過雙向鏈表實現的。


4
雙向鏈表實現的棧,能存儲任意類型的數據


實現代碼:


(1)雙向鏈表的頭文件(double_link.h)


C語言棧的圖文解析和實現


(2)雙向鏈表的實現文件(double_link.c)


C語言棧的圖文解析和實現

C語言棧的圖文解析和實現

C語言棧的圖文解析和實現

C語言棧的圖文解析和實現


(3)雙向鏈表的測試程序(dlink_stack.c)


C語言棧的圖文解析和實現


運行結果:


id=40, name=danid=20, name=jodyid=10, name=sky


結果說明:該示例中的棧是通過雙向鏈表實現的,并且能存儲任意類型的數據。示例中是以結構體類型的數據進行演示的,由于代碼中已經給出了詳細的注釋,這里就不再介紹了。


-END-


來源:博客園,作者skywang12345
原文地址https://www.cnblogs.com/skywang12345/p/3562239.html
免責聲明:整理本文出于傳播相關技術知識,版權歸原作者所有。


免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯系我們,謝謝!

21ic電子網

掃描二維碼,關注更多精彩內容

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉