模拟网页的浏览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\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 0;
}

时间: 2024-12-03 18:15:58

模拟网页的浏览Stack(POJ1028)的相关文章

c# 模拟 网页实现12306登陆、自动刷票、自动抢票完全篇(转)

这一篇文章,我将从头到尾教大家使用c#模拟网页面登陆12306网站,自动刷票,选择订票人,到最后一步提交订单.研究过HTTP协议的童鞋们都 知道,我们在访问网站时,是有两种方式的,POST和GET方式,HTTP协议是TCP/IP的一部分,有兴趣的可以使用Socket通讯可以模拟出 HTTP的访问机制.我们再说POST和GET方式,在访问一个页面时,浏览器会提交一个本地cookie提交到网站服务器,cookie的作用可以是保 存我们登陆网站成功后取得的一串钥匙,也可以是其他的一些重要的信息.这是至

winform中webBrowser模拟网页操作中遇到的问题

我们通过网页上传一些特殊数据的时候,由于必填项众多,数量量大的时候,会发现工作相当繁琐,前段时间做了一个winform内嵌webBrowser模拟网页上传文档的小工具,发现了许多问题,总结一下: 先说明的是文档是用Excel指定格式制成的表格,数据是通过循环表格数据行上传的. 需求是如果文档已经上传那么必须提示,但上传成功不必提示(因为循环上传的话会弹出很多提示框). 代码如下:添加引用 在扩展程序集中找到Microsoft.mshtmlusing mshtml; 在窗体类上面贴标签: [Com

NOI2016模拟赛Zbox loves stack

1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 using namespace std; 7 #define PI pair<int,int> 8 #define fi first 9 #define se second 10 #define mp(a,b) make_p

C# 引用SHDocVw 实现模拟网页操作

因为最近项目需要,所以接触到了网页爬取. 1. HttpWebRequest 初期接触的都是一些比较简单的网页, 2. WebBrower控件 后面接触到一些复杂的网页,模拟登录一套比较难时限,所以采用了webbrower控件,直接用户手动登录,登录后程序再自动完成后续操作. 3. SHDocVw.InternetExplorer 这个在网上搜索一下有很多,一些基本操作都有提到,如:获取IE.打开指定URL.获取控件.执行控件click.执行JS等. 但要实现自动化,一个最重要的就是判断当前页面

cURL模拟网页登陆

<?php /** * Created by PhpStorm. * User: Administrator * Date: 2016/7/13 * Time: 23:15 */ $data='username=71****[email protected]&password=H***437&remember=1'; $curlobj = curl_init(); // 初始化 curl_setopt($curlobj, CURLOPT_URL, "http://www.i

C# 自动登录网页,浏览页面【转载】

需求:客户的数据同时存在在另外一个不可控的系统中,需要和当前系统同步. 思路:自动登录另外一个系统,然后抓取数据,同步到本系统中. 技术点:模拟用户登录:保存登录状态:抓取数据 /// <summary> /// visit the target url /// </summary> /// <param name="targetURL"></param> /// <param name="cc">this

网页文章浏览次数

文章浏览次数,顾名思义就是点击一次,或者刷新页面,次数就加1,. 首先要做的就是在表中加一个字段用来表示浏览次数,本文中的字段是views. 这是主方法: /// <summary> /// 修改浏览次数 /// </summary> /// <param name="id"></param> public static void UpdateViews( int id) { string strSql = string .Format(

利用WebClient实现对Http协议的Post和Get对网站进行模拟登陆和浏览

我们在一些场合经常需要模拟浏览器进行一些操作,比如模拟投票,或者模拟点击,或者Web游戏外挂.而C#中封装好的WebClient可以在某些要求不算搞的场景实现Http的Post和Get.具体请见代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; namespace TestCNM { public class WebClientExt

自从我这样撸代码以后,公司网页的浏览量提高了107%!

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯IVWEB团队发表于云+社区专栏 作者:yangchunwen HTTP协议是前端性能乃至安全中一个非常重要的话题,最近在看<web性能权威指南(High Performance Browser Networking)>,把其中关于HTTP部分的内容拿出来分享一下,加了一点自己的想法,当然没有<HTTP权威指南>讲得详细,但对于理解我们平常做的事情很有启发.预计会有两三篇文章,重点分别会涉及到HTTP 1.1.H