POJ 1028 Web Navigation

题意:模拟一个网页浏览器的操作,BACK, FORWARD, VISIT, and QUIT。

思路:。。。

代码1:段。。

//模拟法
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main(){
	int t=0;//当前网址位置
	int c[500];//c数组标记网址是否存在
	memset(c,0,sizeof(c));
	string a[500];//储存网址
	a[0]="http://www.acm.org/";
	c[0]=1;
	string b;
	while(cin>>b&&b[0]!='Q'){	
		if(b[0]=='V'){
			t++;
			cin>>a[t];
			cout<<a[t]<<endl;
			c[t]=1;
			c[t+1]=0;   //把当前访问的后面的抹掉
		}
		if(b[0]=='B'){
			if(t==0)cout<<"Ignored"<<endl;
			else{ 
				t--;cout<<a[t]<<endl;
			}
		}
		if(b[0]=='F'){
			if(c[t+1]==0)
				cout<<"Ignored"<<endl;
			else{
				t++; cout<<a[t]<<endl;
			}	
		}
	}
	return 0;
}

代码2:自己写的

#include<iostream>
#include<string>
using namespace std;

int main(){
    string b[500];//BACK栈
    b[0]="http://www.acm.org/";
    string f[500];//FORWARD栈
    int lb,lf;//BACK位置,FORWARD位置
    lb=0;lf=0;//初始位置为0
    string s;//命令
    string s2;//网址
    while(cin>>s&&s[0]!='Q'){
        if(s[0]=='B'){
            if(lb==0) cout<<"Ignored"<<endl;
            else{
                lf++;//forward加一
                f[lf]=b[lb];
                lb--;//back减一
                cout<<b[lb]<<endl;
            }
        }
        else if(s[0]=='F'){
            if(lf==0)  cout<<"Ignored"<<endl;
            else{
                lb++;//back加一
                b[lb]=f[lf];
                cout<<f[lf]<<endl;
                lf--;//forward减一
            }
        }
        else{
            lb++;//back加一
            lf=0;//forward变为0
            cin>>b[lb];
            cout<<b[lb]<<endl;
        }
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值