zoukankan      html  css  js  c++  java
  • ZOJ 1061 Web Navigation

    原题链接

    题目大意:模拟一个浏览器,打开一个网页、后退或者前进,输出网址。

    解法:用两个堆栈分别表示后退保存的网页和前进保存的网页。初始化时把当前页面压入后退堆栈的栈顶。要注意几点,一个是每次记得要清空两个堆栈,另一个,如果后退之后又打开了新的网页,前进的堆栈要清空,这和真实的浏览器的结果是一致的。

    参考代码:

    #include<iostream>
    #include<string>
    #include<stack>
    
    using namespace std;
    
    stack<string> back;
    stack<string> forw;
    
    int main(){
    	int n;
    	cin>>n;
    	while(n--){
    		string cmd,url="http://www.acm.org/";
    			while(!back.empty())
    				back.pop();
    			while(!forw.empty())
    				forw.pop();
    			back.push(url);
    
    		while(1){
    			cin>>cmd;
    			if(cmd=="QUIT")break;
    			if(cmd=="VISIT"){
    				cin>>url;
    				back.push(url);
    				cout<<url<<endl;
    				while(!forw.empty())	//visit new website, empty the forward stack
    					forw.pop();
    			}
    			if(cmd=="BACK"){
    				if(back.size()==1)		//top url is the current 
    					cout<<"Ignored"<<endl;
    				else{
    					forw.push(url);
    					back.pop();
    					url=back.top();
    					cout<<url<<endl;
    				}
    			}
    			if(cmd=="FORWARD"){
    				if(forw.empty())
    					cout<<"Ignored"<<endl;
    				else{
    					url=forw.top();
    					forw.pop();
    					back.push(url);
    					cout<<url<<endl;
    				}
    			}
    		}
    		if(n>0)
    			cout<<endl;
    		
    	}
    
    	return 0;
    }
    
  • 相关阅读:
    File
    Include and Require
    Date and Time
    css3的nth-child选择器使用示例
    document.title
    php获取从百度搜索进入网站的关键词的详细代码
    Iphone手机、安卓手机浏览器控制默认缩放大小的方法
    离线宝调用
    织梦DedeCMS网站地图模板
    禁止选择文本和禁用右键 v3.0
  • 原文地址:https://www.cnblogs.com/naive/p/3568755.html
Copyright © 2011-2022 走看看