HDU 1022 棧的基本操作應用

2021-06-19 00:33:59 字數 883 閱讀 2273

首先先介紹下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 資料 資料 ...