基礎數據結構-堆棧-逆序輸出(理解棧的概念)


棧可以想象成一個放套圈的柱子,柱子連着地面,所以先放進去的套圈想取出來就得把后放進的都拿出來才行,也就是先進后出原則。

 

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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM