poj 1028 Web Navigation
来源:互联网 发布:sqlserver导入sql脚本 编辑:程序博客网 时间:2024/04/30 05:25
题目:
Standard web browsers contain features to move backward and forward among the pages recently visited. One way to implement these features is to use two stacks to keep track of the pages that can be reached by moving backward and forward. In this problem, you are asked to implement this.
The following commands need to be supported:
BACK: Push the current page on the top of the forward stack. Pop the page from the top of the backward stack, making it the new current page. If the backward stack is empty, the command is ignored.
FORWARD: Push the current page on the top of the backward stack. Pop the page from the top of the forward stack, making it the new current page. If the forward stack is empty, the command is ignored.
VISIT : Push the current page on the top of the backward stack, and make the URL specified the new current page. The forward stack is emptied.
QUIT: Quit the browser.
Assume that the browser initially loads the web page at the URL http://www.acm.org/
The following commands need to be supported:
BACK: Push the current page on the top of the forward stack. Pop the page from the top of the backward stack, making it the new current page. If the backward stack is empty, the command is ignored.
FORWARD: Push the current page on the top of the backward stack. Pop the page from the top of the forward stack, making it the new current page. If the forward stack is empty, the command is ignored.
VISIT : Push the current page on the top of the backward stack, and make the URL specified the new current page. The forward stack is emptied.
QUIT: Quit the browser.
Assume that the browser initially loads the web page at the URL http://www.acm.org/
源代码:
#include<iostream>#include<stack>#include<string>using namespace std;class URLvisit{public:URLvisit(){backwardSt.push("http://www.acm.org/");}void solution(void){string cmd,url;while((cin>>cmd)&&cmd!="QUIT"){if("VISIT" == cmd){cin>>url;backwardSt.push(url);cout<<url<<endl;while(!forwardSt.empty())forwardSt.pop();}if("BACK" == cmd) {if(backwardSt.size()>1){forwardSt.push(backwardSt.top());backwardSt.pop();cout<<backwardSt.top()<<endl;}else cout<<"Ignored"<<endl;} if ("FORWARD" == cmd){if(!forwardSt.empty()){cout<<forwardSt.top()<<endl;backwardSt.push(forwardSt.top());forwardSt.pop();}else cout<<"Ignored"<<endl;}}};private:stack<string> backwardSt;stack<string> forwardSt;};int main(){URLvisit poj1028;poj1028.solution();system("pause");return 0;}
- POJ 1028 Web Navigation
- POJ 1028 Web Navigation
- poj 1028 Web Navigation
- Web Navigation poj 1028
- poj 1028 Web Navigation
- POJ-1028-Web Navigation
- poj 1028 Web Navigation
- poj-1028 Web Navigation
- POJ 1028 Web Navigation
- poj 1028 Web Navigation
- POJ 1028 Web Navigation
- POJ 1028 - Web Navigation
- POJ 1028 Web Navigation
- poj 1028 Web Navigation
- POJ 1028 Web Navigation
- POJ 1028 - Web Navigation
- POJ 1028----Web Navigation
- poj 1028-Web Navigation
- 二叉树的遍历
- 谷歌面试题
- 用csc.exe将文本文件转换为exe,dll等
- POJ-3287-The Trip, 2007
- newlisp set 函数
- poj 1028 Web Navigation
- GCC含义、分步骤编译以及链接过程、Makefile写法
- Java实现简单文本文件复制
- typedef enum
- 在存储过程中使用了DML语句要不要调用COMMIT?
- 问题三: f=1-1/2+1/3-1/4+...+1/9
- 智能指针 auto_ptr(C++ Primier-8)
- 输入一行字符,分别统计出其中英文字母、数字字符的个数。
- JAVA实现图像文件复制