例說資料結構&STL(五)——stack
1 白話棧(stack)
棧(statck)和佇列相似,是一個帶有資料儲存特性的資料結構。棧中儲存資料與佇列相反是先進後出的(First In Last Out, FILO),我們可以對應於生活中壘椅子的經驗來理解這種資料結構的特性。棧只有一個出口,像下面一摞椅子一樣,只能在棧頂上增加元素,也只能從棧頂移出元素和訪問元素。
2 STL中stack實戰
2.1 標頭檔案
STL中stack模板類定義在下面標頭檔案中,同時我們需要宣告標準庫的名稱空間。
#include<stack>
using namespace std;
stack由於是單向出口,所以介面相對較少,並且它和佇列queue一樣,屬於介面卡型別容器,所以沒有定義迭代器iterator類來操作訪問stack中元素。
2.2 變數宣告
stack模板類構造需要兩個模版引數,一個是元素型別,一個是容器型別。元素型別是必要的,和前面介紹的一樣,可以是傳統資料型別諸如int,long,float等,或者是類,結構體諸如string等。容器型別是可選的,包括vector,list或者deque,預設就是前面介紹的deque型別。
stack的宣告如下:
stack<int> stk_fir;
stack<string> stk_sed;
2.3 基本操作
我們以上面定義的stk_fir棧物件為例,介紹堆疊stack基本方法操作:
stk_fir.push(10086); // 棧頂入棧元素10086
stk_fir.pop(); // 刪除一個棧頂元素
stk_fir.top(); // 訪問棧頂一個元素(而queue可以訪問隊首和隊尾,分別是front()和back()方法)
stk_fir.size(); // 返回棧中元素個數
stk_fir.swap(stk_thd); // 交換兩個相同型別的stack中所有資料
stk_fir.empty(); // 棧中為空則返回true
3 小結
棧的方法介面不是很多,這些已經足夠我們完成棧這個資料結構幾乎所有行為。棧在現實當中憑藉其FILO特性也得到了廣泛的應用,例如進位制轉換,二叉樹的中序遍歷等等。
以上是個人學習記錄,由於能力和時間有限,如果有錯誤望讀者糾正,謝謝!
轉載請註明出處:http://blog.csdn.net/FX677588/article/details/76351011
相關文章
- 例說資料結構&STL(十三)——pair資料結構AI
- 例說資料結構&STL(一)——vector資料結構
- 例說資料結構&STL(二)——list資料結構
- 例說資料結構&STL(三)——deque資料結構
- 例說資料結構&STL(四)——queue資料結構
- 例說資料結構&STL(六)——heap資料結構
- 例說資料結構&STL(八)——set資料結構
- 例說資料結構&STL(九)——map資料結構
- 例說資料結構&STL(十二)——iterator資料結構
- 例說資料結構&STL(七)——priority_queue資料結構
- 例說資料結構&STL(十)——hash_set/unordered_set資料結構
- 例說資料結構&STL(十一)——hash_map/unordered_map資料結構
- js資料結構--棧(stack)JS資料結構
- STL中經常使用資料結構資料結構
- Java常用資料結構之Stack&VectorJava資料結構
- 【資料結構】棧(Stack)和佇列(Queue)資料結構佇列
- C++ STL stackC++
- 資料結構之Stack | 讓我們一塊來學習資料結構資料結構
- 《STL原始碼剖析》-- stl_stack.h原始碼
- STL-queue&deque&stack
- Redis 的五種資料結構Redis資料結構
- C++ STL stack容器——棧C++
- 資料結構分析及其實現(Stack、Queue、Tree、LinkedList)資料結構
- 演算法與資料結構-棧(Stack)-Java實現演算法資料結構Java
- 資料結構實驗課五-1資料結構
- 《Java 高階篇》五:資料結構Java資料結構
- 《大話資料結構》讀後總結(五)資料結構
- 每週一練 之 資料結構與演算法(Stack)資料結構演算法
- C++ STL學習之stack。C++
- 傳說中的資料結構_JAVA資料結構Java
- 資料庫開發經典五例總結資料庫
- 資料結構:線性表-例題資料結構
- 【PG結構】Postgresql資料庫資料目錄說明SQL資料庫
- C#資料結構與演算法系列(八):棧(Stack)C#資料結構演算法
- Stack and Queue in JavaScript(Javascript中的資料結構之棧和佇列)JavaScript資料結構佇列
- Redis資料結構詳解之Zset(五)Redis資料結構
- 從一條資料說起——InnoDB儲存資料結構資料結構
- 關於架構離不開資料結構之說架構資料結構