标签:
VISIT http://acm.ashland.edu/ VISIT http://acm.baylor.edu/acmicpc/ BACK BACK BACK FORWARD VISIT http://www.ibm.com/ BACK BACK FORWARD FORWARD FORWARD QUIT
http://acm.ashland.edu/ http://acm.baylor.edu/acmicpc/ http://acm.ashland.edu/ http://www.acm.org/ Ignored http://acm.ashland.edu/ http://www.ibm.com/ http://acm.ashland.edu/ http://www.acm.org/ http://acm.ashland.edu/ http://www.ibm.com/ Ignored
思路:这题模拟栈。自己开一个数组和栈头指针和栈尾指针来模拟。。。。。坑点:因为浏览器的特点当你在前进后退的途中输入一个网站,那么他那么这个网站的位置到栈尾的网站全部清空了,也就是说栈尾就是你输入的这个网站。
#include <iostream> #include <cstdio> #include <cstring> using namespace std; char str[100][130]; int main() { #ifdef CDZSC_OFFLINE freopen("in.txt","r",stdin); #endif char str1[10],a[100]; int n,m; n=0,m=0; memset(str,0,sizeof(str)); strcpy(str[0],"http://www.acm.org/"); while(scanf("%s",str1)!=EOF) { if(strcmp(str1,"VISIT")==0) { scanf("%s",a); strcpy(str[++n],a); m=n;//后面的网站会被清空 printf("%s\n",str[m]); } else if(strcmp(str1,"BACK")==0) { n--; if(n<0) { n=0; printf("Ignored\n"); } else { printf("%s\n",str[n]); } } else if(strcmp(str1,"FORWARD")==0) { n++; if(n>m) { n=m; printf("Ignored\n"); } else { printf("%s\n",str[n]); } } else if(strcmp(str1,"QUIT")==0) { break; } } return 0; }
标签:
原文地址:http://www.cnblogs.com/Wing0624/p/4253954.html