题目链接: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 ;
}

最新文章

  1. [LeetCode] Word Ladder II 词语阶梯之二
  2. 折腾域名的dns
  3. 细说.NET中的多线程 (五 使用信号量进行同步)
  4. Android开发中的Json字符串与复杂的嵌套对象互转。
  5. Centos7安装rabbitmq server 3.6.0
  6. VC项目配置基础以及快捷键(收藏)
  7. .Net互操作2
  8. c - 十六进制 转 十进制
  9. Flink Program Guide (2) -- 综述 (DataStream API编程指导 -- For Java)
  10. 互联网“剁手”新方向,VR全景购物忙——全景智慧城市常诚
  11. 你不知道的JavaScript--Item24 ES6新特性概览
  12. [Swift]LeetCode202. 快乐数 | Happy Number
  13. [Swift]LeetCode792. 匹配子序列的单词数 | Number of Matching Subsequences
  14. IDEA community + Gradle + Gretty 调试 servlet 应用 + war包部署到tomcat
  15. nSamplesPerSec和nAvgBytesPerSec
  16. Django Book学习笔记(下)
  17. linux 内核crash 命令
  18. C# js 在页面能执行,放在单独js文件不能执行
  19. 【刷题】BZOJ 1977 [BeiJing2010组队]次小生成树 Tree
  20. 跟我学算法- tensorflow模型的保存与读取 tf.train.Saver()

热门文章

  1. git命令行操作:拉不到最新代码???
  2. my.资料
  3. 2018.6.1学习CSS5里顺丰盒子小问题
  4. hdfs shell命令及java客户端编写
  5. Unity 游戏对象的组件列表
  6. (转)shell脚本输出带颜色字体
  7. 如何解决 “the specified service is marked as deletion”
  8. 使用dtd--属性声明
  9. Java并发包concurrent类简析
  10. 修复kindEditor点击加粗, 内容焦点跳动的问题