1. 程式人生 > >DS堆疊--逆序輸出(STL棧使用)

DS堆疊--逆序輸出(STL棧使用)

題目描述

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