模拟网页的浏览Stack(POJ1028)
2024-10-17 08:00:16
题目链接:http://poj.org/problem?id=1028
注意:
1、用两个栈来模拟,一个用来存可以返回的,一个用来存可以前进的。
2、visit方法,就要将可以前进的栈清空。
3、back方法,将当前的网页给可以前进的栈,而可以返回的栈出栈一个元素。
4、forward方法,将当前网页存给可以返回的栈,将可以前进的栈出栈一个元素,变成当前网页。
#include <iostream>
#include <stack>
#include <string> using namespace std; stack<string> bstack,fstack;
string current; void visit()
{
if(current!="")
bstack.push(current);
cin>>current;
cout<<current<<endl;
while(!fstack.empty()) ///把以前的清空
fstack.pop();
return;
} void back()
{
if(bstack.empty())
{
cout<<"Ignored\n";
return;
}
fstack.push(current); ///把当前的放到以前的栈中
current=bstack.top(); ///获得新的当前网页
bstack.pop();
cout<<current<<endl;
} void forward()
{
if(fstack.empty())
{
cout<<"Ignored\n";
return;
}
bstack.push(current); ///当前的网页给现在的栈
current=fstack.top(); ///当前的网页变成以前的网页
fstack.pop();
cout<<current<<endl;
} int main()
{
string cmd;
current="http://www.acm.org/";
while(cin>>cmd&&cmd!="QUIT")
{
if(cmd=="VISIT")
visit();
else if(cmd=="FORWARD")
forward();
else if(cmd=="BACK")
back();
}
return ;
}
最新文章
- [LeetCode] Word Ladder II 词语阶梯之二
- 折腾域名的dns
- 细说.NET中的多线程 (五 使用信号量进行同步)
- Android开发中的Json字符串与复杂的嵌套对象互转。
- Centos7安装rabbitmq server 3.6.0
- VC项目配置基础以及快捷键(收藏)
- .Net互操作2
- c - 十六进制 转 十进制
- Flink Program Guide (2) -- 综述 (DataStream API编程指导 -- For Java)
- 互联网“剁手”新方向,VR全景购物忙——全景智慧城市常诚
- 你不知道的JavaScript--Item24 ES6新特性概览
- [Swift]LeetCode202. 快乐数 | Happy Number
- [Swift]LeetCode792. 匹配子序列的单词数 | Number of Matching Subsequences
- IDEA community + Gradle + Gretty 调试 servlet 应用 + war包部署到tomcat
- nSamplesPerSec和nAvgBytesPerSec
- Django Book学习笔记(下)
- linux 内核crash 命令
- C# js 在页面能执行,放在单独js文件不能执行
- 【刷题】BZOJ 1977 [BeiJing2010组队]次小生成树 Tree
- 跟我学算法- tensorflow模型的保存与读取 tf.train.Saver()