poj 1028-Web Navigation

来源:互联网 发布:ubuntu 16.04 升级 编辑:程序博客网 时间:2024/05/17 06:52

仿真题。。。

其实题目里已经把实现方法介绍了,我没仔细审题,虽然实现了s_back和s_forward两个栈,但是漏考虑了新页面打开要清理s_forward栈的情况,考虑不周。

另外,我把s_back的栈顶当作current_page了,问题不大。


#include <iostream>#include <stack>using namespace std;struct Item{char *url;Item(){url = new char[70];}};int main (){stack<Item> s_back;stack<Item> s_forward;s_back.push(*(new Item()));s_back.top().url = "http://www.acm.org/\x00";Item *ptemp = new Item();while((cin>>(ptemp->url)) && ptemp->url[0]!='Q'){switch (ptemp->url[0]){case 'V':cin>>ptemp->url;cout<<ptemp->url<<endl;s_back.push(*ptemp);ptemp = new Item();while (!s_forward.empty()){s_forward.pop();}break;case 'B':if (s_back.size()==1){cout<<"Ignored"<<endl;}else{s_forward.push(s_back.top());s_back.pop();cout<<s_back.top().url<<endl;}break;case 'F':if (!s_forward.empty()){cout<<s_forward.top().url<<endl;s_back.push(s_forward.top());s_forward.pop();}else{cout<<"Ignored"<<endl;}break;default:break;}}}


0 0
原创粉丝点击