棧可以想象成一個放套圈的柱子,柱子連着地面,所以先放進去的套圈想取出來就得把后放進的都拿出來才行,也就是先進后出原則。
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個測試實例
第二起,每一行輸入一個字符串,注意字符串不要包含空格
輸出
每行逆序輸出每一個字符串
樣例輸入
2
abcdef
aabbcc
樣例輸出
fedcba
ccbbaa
#include <stack> #include <iostream> #include <string> using namespace std; int main() { stack<char> s; int n,m,i; string str; int len; char ct; cin>>n; for(i=0;i<n;i++) { cin>> str; //把輸入的字符串保存在變量str中 len = str.length(); //獲取輸入字符串的長度 for(m=0;m<len;m++) { s.push(str[m]); } while(!s.empty()) { ct=s.top(); s.pop(); cout<< ct ; } cout<< endl; } return 0; }