poj 1028 Web Navigation

题目链接:http://poj.org/problem?id=1028

解题思路:STL —— stack

  1 ///////////////////////////////////////////////////////////////////////////
  2 //problem_id: poj 1028
  3 //user_id: SCNU20102200088
  4 ///////////////////////////////////////////////////////////////////////////
  5 
  6 #include <algorithm>
  7 #include <iostream>
  8 #include <iterator>
  9 #include <iomanip>
 10 #include <cstring>
 11 #include <cstdlib>
 12 #include <string>
 13 #include <vector>
 14 #include <cstdio>
 15 #include <cctype>
 16 #include <cmath>
 17 #include <queue>
 18 #include <stack>
 19 #include <list>
 20 #include <set>
 21 #include <map>
 22 using namespace std;
 23 
 24 ///////////////////////////////////////////////////////////////////////////
 25 typedef long long LL;
 26 const double PI=acos(-1.0);
 27 ///////////////////////////////////////////////////////////////////////////
 28 
 29 ///////////////////////////////////////////////////////////////////////////
 30 //Add Code:
 31 ///////////////////////////////////////////////////////////////////////////
 32 
 33 int main(){
 34     ///////////////////////////////////////////////////////////////////////
 35     //Add code:
 36     string s,current;
 37     stack<string> forward,backward;
 38     current="http://www.acm.org/";
 39     while(cin>>s){
 40         if(s[0]=='B'){
 41             if(!backward.empty()){
 42                 forward.push(current);
 43                 current=backward.top();
 44                 backward.pop();
 45                 cout<<current<<endl;
 46             }
 47             else cout<<"Ignored"<<endl;
 48         }
 49         else if(s[0]=='F'){
 50             if(!forward.empty()){
 51                 backward.push(current);
 52                 current=forward.top();
 53                 forward.pop();
 54                 cout<<current<<endl;
 55             }
 56             else cout<<"Ignored"<<endl;
 57         }
 58         else if(s[0]=='V'){
 59             backward.push(current);
 60             cin>>current;
 61             cout<<current<<endl;
 62             while(!forward.empty()) forward.pop();
 63         }
 64         else if(s[0]=='Q') break;
 65     }
 66     ///////////////////////////////////////////////////////////////////////
 67     return 0;
 68 }
 69 
 70 ///////////////////////////////////////////////////////////////////////////
 71 /*
 72 Testcase:
 73 Input:
 74 VISIT http://acm.ashland.edu/
 75 VISIT http://acm.baylor.edu/acmicpc/
 76 BACK
 77 BACK
 78 BACK
 79 FORWARD
 80 VISIT http://www.ibm.com/
 81 BACK
 82 BACK
 83 FORWARD
 84 FORWARD
 85 FORWARD
 86 QUIT
 87 Output:
 88 http://acm.ashland.edu/
 89 http://acm.baylor.edu/acmicpc/
 90 http://acm.ashland.edu/
 91 http://www.acm.org/
 92 Ignored
 93 http://acm.ashland.edu/
 94 http://www.ibm.com/
 95 http://acm.ashland.edu/
 96 http://www.acm.org/
 97 http://acm.ashland.edu/
 98 http://www.ibm.com/
 99 Ignored
100 */
101 ///////////////////////////////////////////////////////////////////////////

posted on 2013-08-15 22:18  SCNU20102200088  阅读(157)  评论(0编辑  收藏  举报

导航