DS堆疊--逆序輸出(STL棧使用)
阿新 • • 發佈:2018-11-09
題目描述
C++中已經自帶堆疊物件stack,無需編寫堆疊操作的具體實現程式碼。
本題目主要幫助大家熟悉stack物件的使用,然後實現字串的逆序輸出
輸入一個字串,按字元按輸入順序壓入堆疊,然後根據堆疊後進先出的特點,做逆序輸出
stack類使用的參考程式碼
n包含標頭檔案<stack> : #include <stack>
n建立一個堆疊物件s(注意stack是模板類):stack <char> s; //堆疊的資料型別是字元型
n把一個字元ct壓入堆疊: s.push(ct);
n把棧頂元素彈出:s.pop();
n獲取棧頂元素,放入變數c2: c2 = s.top();
n判斷堆疊是否空: s.empty(),如果為空則函式返回true,如果不空則返回false
輸入
第一行輸入t,表示有t個測試例項
第二起,每一行輸入一個字串,注意字串不要包含空格
字串的輸入可以考慮一下程式碼:
#include <string>
int main()
{ string str;
Int len;
cin>>str; //把輸入的字串儲存在變數str中
len = str.length() //獲取輸入字串的長度
}
輸出
每行逆序輸出每一個字串
樣例輸入
2 abcdef aabbcc
樣例輸出
fedcba ccbbaa
#include <iostream> #include <stack> #include <string> using namespace std; void test() { string s; cin>>s; char p; stack<char> Q; for(int i=0;i<s.length();i++) { p=s[i]; Q.push(p); } while(!Q.empty()) { p=Q.top(); Q.pop(); cout<<p; } cout<<endl; } int main() { int t; cin>>t; while(t--) { test(); } return 0; }