zoukankan      html  css  js  c++  java
  • 模拟网页的浏览Stack(POJ1028)

    题目链接: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
    ";
            return;
        }
        fstack.push(current);   ///把当前的放到以前的栈中
        current=bstack.top();   ///获得新的当前网页
        bstack.pop();
        cout<<current<<endl;
    }
    
    void forward()
    {
        if(fstack.empty())
        {
            cout<<"Ignored
    ";
            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 0;
    }
    View Code
  • 相关阅读:
    LeetCode_4——寻找两个有序数组的中位数
    Java的CAS与ABA问题
    跨域问题解决
    解决git-for-windows官网下载速度慢的问题
    Java对观察者模式的支持
    Java动态代理
    设计模式七大原则
    UML中的类图关系
    布隆过滤器(Bloom Filter)与Hash算法
    Ubuntu16安装fabric1.4.4环境
  • 原文地址:https://www.cnblogs.com/TreeDream/p/5414000.html
Copyright © 2011-2022 走看看