【原创】逆序输出字符(stack)

 

//逆序输出

#include <iostream>
#include <stack>
#include <vector>
 
using namespace std;
 
int reverse(int num);
int reverse(stack<char,vector<char> > a);
 
int main()
{
     int num=123456789;
     char c;
     stack<char,vector<char> > a;   //指定stack采用vector为容器类型,默认为deque 
     
     cout <<num <<endl;
     cout <<reverse(num) <<endl;
     
     cout <<"请输入字符串(以#结束):" <<endl; 
     do
     {
          cin >>c;
          if(c!='#') a.push(c);   //将输入的字符顺序压入栈 
     }while(c!='#');
     reverse(a);
     
     system("pause");
     return 0;
}
 
//将整数反转并返回 
int reverse(int num)
{
     int i=0;
     while(true)
     {
           i=i*10+num%10;
           num=num/10; 
           if(num==0)break;
     }
     return i;
} 
 
//逆序输出字符   先进后出,后进先出 
int reverse(stack<char,vector<char> > a)
{
    while(!a.empty())
    {
          cout <<a.top();  //获取栈顶元素 
          a.pop();   //弹出 
    }
    cout <<endl;
    return 0;
}
posted @ 2009-11-17 14:33  leukotrichia  阅读(735)  评论(0编辑  收藏  举报