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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C++实现stack【栈】

發布時間:2023/11/27 生活经验 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++实现stack【栈】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要求:

//****file: stack.h
/*
對stack進行初始化
檢查stack為空,或已滿
將整數壓入到stack中
從stack里彈出整數
不移除任何袁術,講過stack的內容輸出到標準輸出
Stack類的私有成員如下:
一個用于打印錯誤信息的私有哦成員函數
三個私有數據成員構成了stack類的private實現,此實現為類接口提供支持。

*/

類的實現

?

 1 #include <iostream>
 2 using namespace std;
 3 
 4 
 5 class Stack{
 6     public : 
 7     enum {MaxStack = 5};
 8     //初始化棧,棧為空 
 9     void init () {top = -1;}
10     
11     void push (int n){
12         if (isFull()){
13             errMsg("Full stack .cant push");
14             return ;        
15         }
16         arr[++top ] =n;        
17     }
18     
19     int pop() {
20         if (isEmpty () ){
21             errMsg("Empty stack . Popping dummy value.");
22             return dummy_val;
23         }
24     
25         return arr[top-- ];
26     }
27     //檢查statck是否為空 
28     bool isEmpty() {return top <0 ;}
29     //檢查stack是否已滿 
30     bool isFull() {return top >= MaxStack - 1;}
31     
32     //dump傾倒 , 按照從stack頂端到底端的次序,依次將Stack的內容輸出到標準輸出 
33     void dump () {
34         for (int i = top; i >= 0; i--)
35             cout << 't' << arr[i] << '\n';
36     }
37      
38 
39     private :
40         void errMsg(const char * msg) const {
41             cerr << "\n*** Stack operation failure : "<< msg << '\n'; 
42         }
43         
44         int top;
45         int arr[ MaxStack ];
46         int dummy_val;
47 
48 };

測試代碼如下:

#include <iostream>
#include "stack.h" int main() {Stack s1;s1.init();s1.push(9);s1.push(4);s1.dump();cout << "Popping " << s1.pop() << '\n';s1.dump();s1.push(8);s1.dump();s1.pop();s1.pop();s1.dump();s1.pop();s1.dump();s1.push(3);s1.push(5);s1.dump();for (unsigned i = 0; i <Stack::MaxStack; i++)s1.push(1);s1.dump();return 0;
}

調試結果:

/*
t4
t9
Popping 4
t9
t8
t9*** Stack operation failure : Empty stack . Popping dummy value.
t5
t3*** Stack operation failure : Full stack .cant push*** Stack operation failure : Full stack .cant push
t1
t1
t1
t5
t3--------------------------------
Process exited with return value 0
Press any key to continue . . .*/

?

轉載于:https://www.cnblogs.com/super90/p/4390873.html

總結

以上是生活随笔為你收集整理的C++实现stack【栈】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。