zoukankan      html  css  js  c++  java
  • poj1038

    题目大意:网络导航?
    标准的web浏览器包含向前和向后浏览最近的页面的特性,有一个方法来实现这些用两个栈来跟踪页面达到向前和向后的移动,在这个问题里面,你被要求实现这些。
    以下命令需要支持:
    BACK:把当前页面放进前面的栈的最顶部,删除这个页面在后面的栈,使其成为新的当前页面,如果后面的栈是空格,命令被忽略;
    FORWARD:跟上面的相反    ;
    VISIT:把当前页面放在后面栈的顶部,并使URL指定新的页面,前面的栈是清空。
    QUIT:退出浏览器。
    假设浏览器最初加载的页面是URL http://www.acm.org/
    倒是个练习栈的好题目
    #include<iostream>
    #include<string>
    #include<stack>
    using namespace std;

    int main()
    {
        string Now="http://www.acm.org/";
        string Back="BACK", Forwed="FORWARD",Visit="VISIT", Op;
        stack<string>FRWRD, BCK;

        while(cin >> Op, Op != "QUIT")
        {
            if(Op == Visit)
            {
                BCK.push(Now);
                cin >> Now;
                while(FRWRD.size())
                    FRWRD.pop();
            }
            else if(Op == Forwed)
            {
                if(FRWRD.size() == 0)
                {
                    cout << "Ignored" <<endl;
                    continue;
                }
                else
                {
                    BCK.push(Now);
                    Now = FRWRD.top();
                    FRWRD.pop();
                }
            }
            else
            {
                if(BCK.size() == 0)
                {
                    cout << "Ignored" <<endl;
                    continue;
                }
                else
                {
                    FRWRD.push(Now);
                    Now = BCK.top();
                    BCK.pop();
                }
            }

            cout << Now <<endl;
        }

        return 0;

    } 

  • 相关阅读:
    Android之SurfaceView学习(一)
    AS3的加载机制(带例子) 转载
    Timer与TimerTask的用法
    A*寻路初探 GameDev.net (转载)
    解决在Sql Server2005查询分析器中读取Excel表出现的一些问题
    svn更改用户问题
    MVC4 WEBAPI初探
    使用WORD2013发布blog
    一个IIS中可否支持两个版本的Freamwork
    web打印也能分页
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4383917.html
Copyright © 2011-2022 走看看