POJ 1028 Web Navigation 题解

2015-07-20 18:07:49 · 作者: · 浏览: 19

考查代码能力的题目。也可以说是算法水题,呵呵。

推荐新手练习代码能力。

要增加难度就使用纯C实现一下stack,那么就有点难度了,可以使用数组模拟环形栈。做多了,我就直接使用STL了。


#include 
  
   
#include 
   
     #include 
    
      #include 
     
       using namespace std; int main() { stack
      
        forward; stack
       
         backward; string cur = "http://www.acm.org/"; string cmd; while (cin>>cmd) { if (cmd == "QUIT") break; if (cmd == "VISIT") { backward.push(cur); cin>>cur; puts(cur.c_str()); forward = stack
        
         (); } else if (cmd == "BACK") { if (backward.empty()) { puts("Ignored"); } else { forward.push(cur); cur = backward.top(); backward.pop(); puts(cur.c_str()); } } else if (cmd == "FORWARD") { if (forward.empty()) { puts("Ignored"); } else { backward.push(cur); cur = forward.top(); forward.pop(); puts(cur.c_str()); } } } return 0; }