toj 1196 栈的运用(模拟浏览器)

两个栈来模拟浏览器的操作,简单模拟。

 1 #include <iostream>
 2 #include <string>
 3 #include <stack>
 4 using namespace std;
 5
 6 stack<string> forward;
 7 stack<string> back;
 8
 9 int main ()
10 {
11     string cur("http://www.acm.org/"), tmp;
12     while ( cin >> tmp )
13     {
14         if ( tmp == "QUIT" )
15         {
16             break;
17         }
18         else if ( tmp == "BACK" )
19         {
20             if ( back.empty() )
21             {
22                 cout << "Ignored" << endl;
23             }
24             else
25             {
26                 forward.push(cur);
27                 cur = back.top();
28                 back.pop();
29                 cout << cur << endl;
30             }
31         }
32         else if ( tmp == "FORWARD" )
33         {
34             if ( forward.empty() )
35             {
36                 cout << "Ignored" << endl;
37             }
38             else
39             {
40                 back.push(cur);
41                 cur = forward.top();
42                 forward.pop();
43                 cout << cur << endl;
44             }
45         }
46         else if ( tmp == "VISIT" )
47         {
48             back.push(cur);
49             cin >> cur;
50             while ( !forward.empty() )
51             {
52                 forward.pop();
53             }
54             cout << cur << endl;
55         }
56     }
57     return 0;
58 }
时间: 2024-10-28 14:18:24

toj 1196 栈的运用(模拟浏览器)的相关文章

【POJ 1028】模拟浏览器

本题要求模拟浏览器的前进.后退等操作. 用两个栈实现,一个控制前进,一个控制后退. 在前进与后退操作中,从一个栈中弹出栈顶元素,压入另一个栈中. 当打开一个新网页时,将前进栈清空. 代码如下: #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <cstdlib> #include

PHP curl模拟浏览器抓取网站信息

curl是一个利用URL语法在命令行方式下工作的文件传输工具. 官方解释 curl是一个利用URL语法在命令行方式下工作的文件传输工具.curl是一个利用URL语法在命令行方式下工作的文件传输工具.它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP.curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies,

模拟浏览器

模拟浏览器,发送http的消息给tomcat服务器,并获取服务器(Tomcat)反馈的信息 import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class MyBrowser { public static void main(String[]

php -- php模拟浏览器访问网址

目前我所了解到的在php后台中,用php模拟浏览器访问网址的方法有两种: 第一种:file_get_contents($url) 通过php内置的 file_get_contents 函数可以模拟浏览器访问网址的行为,取的结果就是那个网址所返回的所有东西(这种情况一般用于返回的是 xml 格式字符串或者 json 字符串) 第二种:curl curl 是 php 提供的内置函数,其功能非常强大,封装常用的http,soap,ftp等协议 微信主要通过其进行模拟POST请求 1)初始化curl 2

NOIP2008 双栈排序 染色+模拟

挺不错的一道题,首先可以知道若存在形如 k<i<j 但 a[k]<a[i]<a[j]这样的,那么i,j一定不能(从始至终不能)进入同一个栈 例如 2 3 1,若2 3进入同一个栈,那么1再进栈然后马上出栈,这时候,2没有办法在3之前出来. 所以对于这样的i,j我们连一条边,然后dfs染色,若染色中发现相邻点颜色相同,则无解,否则我们按照1,2,1,2的顺序染色. 确定了每一个数属于哪个栈后,用2个stack模拟一下就好了. #include <iostream> #in

Python模拟浏览器实现用户响应

最近工作中遇到一个问题,在集群上运行的任务有时候无法正常结束,或者无法正常启动.这会造成这批运行的任务无法正常结束运行,处于pending的状态,导致后面的任务无法正常启动. 该问题困扰我们项目已经有半年左右了,一直没有想到很好的解决办法.主要原因就是任务的状态只能在浏览器中看出,无法通过后台的日志或者数据库查询得到.在浏览器中,如果我们看到某个任务长时间没有运行时间和状态的变化,就可以把这个任务当做是“僵尸”任务,从而可以将该任务手动结束掉(kill). 春节之后在网上看到一些有关爬虫的文章,

php中curl模拟浏览器来传输数据

cURL可以使用URL的语法模拟浏览器来传输数据, 因为它是模拟浏览器,因此它同样支持多种协议,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等协议都可以很好的支持,包括一些:HTTPS认证,HTTP POST方法,HTTP PUT方法,FTP上传,keyberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上传文件断点续传,http代理服务器管道,甚至它还支持IPv6,scoket5代

JavaWeb的学习--XML&amp;反射案例:通过解析xml,模拟浏览器路径访问servlet

1. 案例分析 通过解析xml,模拟浏览器路径访问servlet,我们希望用户访问的路径是/servlet1,将执行com.java.web.servlet01.MyServlet01程序,如果访问      的路径是/servlet2,将执行com.java.web.servlet01.MyServlet02程序. 在执行测试程序前(@before),解析xml文件,将解析的结果存放在Map集合中,map中的数据的格式为 路径=实现类. 解析xml的思路:先解析<servlet>,将结果存放

.net后台模拟浏览器get/post请求

#region 后台模拟浏览器get/post请求 /// <summary> /// 发送请求方式 /// </summary> /// <param name="url">请求Url</param> /// <param name="para">请求参数</param> /// <param name="method">请求方式GET/POST</par