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;

    } 

  • 相关阅读:
    v-cloak
    MVVM
    初识ajax
    装瓶学习法
    回调函数(call back)
    如何让学习变得纯粹?
    异步
    grep用法
    Shell中的&&与||的区别
    shell中使用>/dev/null 2>&1 丢弃信息
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4383917.html
Copyright © 2011-2022 走看看