首先先介紹下c++ stl 中的 stack.
stack也是程式設計中常常用到的資料容器,stl為我們提供了stack的實現,因此在使用stack時必須包含標頭檔案#include,並使用統一命名空間。
1.宣告乙個stack
stacks1;
stacks2;
stacks3;
stack模板類需要2個模板引數,乙個為元素型別,乙個為容器型別,但是只有元素型別是必要的,
在容器型別預設時,預設為deque。
2.stack中的操作
stacks;
s.push(x) 無返回值,將元素x壓棧
s.pop(); 退棧,無返回值
s.top(); 取棧頂元素,返回棧頂元素
s.empty(); 判斷棧是否為空,如果是空,返回1,否則返回0
s.size(); 返回棧中元素的個數
在棧中沒有提供清空操作的函式,但是可以間接地實現清空棧,
while(!s.empty())
此題就是棧的基本應用。
#include #include #include using namespace std;
const int maxn = 10+10;
int num1[maxn],num2[maxn];
char str[maxn];
bool flag[maxn];
int main()
{ int n;
while(~scanf("%d",&n))
{ scanf("%s",str);
for(int i=0;istacks;
int j=0,k=0;
for(int i=0;i
hdu1022 火車 棧的使用
今天做的水題有點多,猶豫要不要發出來,不管了,明天再說 想起大二下的時候資料結構為了乙個棧的寫費了多長的時間,現在用stl的格式簡潔明快。所以說 不要重複造輪子。簡直要哭了。隨便寫寫吧 完整 如下,一些小的感受也儲存了起來,明天再好好練習 include include include includ...
HDU 1022(關於棧的詳細解法)
題意 就是火車進站問題,實際就是棧的模板 思路 那麼我們用棧來解決這個問題,無非是入棧,出棧。那麼我們先壓入出棧序列的第乙個元素,然後我們就需要要進行判斷了。如果棧中元素等於預想出棧序列的頭元素,那麼就彈出棧中當前元素,這個還需要記錄出棧還是入棧,因為最後要列印,所以我們首先開乙個布林陣列1代表入棧...
hdu1022火車進站(有關棧的基本問題)
hdu1022 很簡單的棧的使用,第一次涉及到 棧的標頭檔案 來列舉一下這道題裡面用到的有關棧的命令 stacktrain 構建乙個資料型別是char的棧,然後這個棧的名字叫train train.empty 判斷棧train是不是為空,是空就返回1,非空就返回0.train.push 資料 資料 ...