模拟平时上网打开网页的操作,值得注意的是,如果BACK回一个网页之后进行VISIT操作,之前的网页FORWARD都回不去了
#include<cstdio>
#include<cstring>
#include<iostream>
#include<stack>
using namespace std;
#define MAXD 20
#define MAX_SIZE 100 + 10
const char start_page[] = {"http://www.acm.org/"};
int main(){
int now_page = 0;
int top = 0;
char ord[MAXD];
char web[MAX_SIZE][MAX_SIZE];
strcpy(web[top++],start_page);
for(;scanf("%s",ord);){
if(strcmp(ord,"QUIT") == 0) break;
else if(strcmp(ord,"VISIT") == 0){
top = now_page + 1;
scanf("%s",web[top++]);
now_page += 1;
printf("%s\n",web[now_page]);
}
else if(strcmp(ord,"BACK") == 0){
now_page -= 1;
if(now_page >= 0)
printf("%s\n",web[now_page]);
else{
now_page = 0;
printf("Ignored\n");
}
}
else if(strcmp(ord,"FORWARD") == 0){
if(now_page + 1 < top){
now_page += 1;
printf("%s\n",web[now_page]);
}
else{
printf("Ignored\n");
}
}
}
return 0;
}