poj 1028

http://poj.org/problem?id=1028

 

题意(水):做一个游览器的历史记录。

back:后退到上一个页面,当上一个页面没有时,输出ignored. 

forward:向前一个页面,但此页面为最前的页面时,输出ignored. 

vista:游览所指定的页面。

quit:退出。

解题思路:题目是说用栈,但不用栈也是可以的。就用纯数组来模拟就栈。

我用的是string类型,这个类型有个好处,就是比较不用strcmp函数,还有输入方便,直接cin就行。但其实本质就是char[];

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <string>
 4 #include <iostream>
 5 
 6 using namespace std;
 7 
 8 string str[1000],str1[1000];     //记得数组不能开太小,开太小就会RE。
 9 
10 int main()
11 {
12     int n=0,mark=0,now=0;
13     str1[0]="http://www.acm.org/";    //题目说最原始的页面就是这个acm的。
14     while(cin>>str[n]&&str[n]!="QUIT"){
15         if(str[n]=="VISIT"){
16                 mark++;
17                 now++;
18                 if(mark>now) mark=now;   //页面的覆盖。
19                 cin>>str1[mark];
20             }
21         if(str[n]=="VISIT") {
22             cout<<str1[mark]<<endl;
23         }
24         if(str[n]=="BACK") {
25             if(now==0) cout<<"Ignored"<<endl;  
26             else cout<<str1[--now]<<endl;
27         }
28         if(str[n]=="FORWARD"){
29             if(now==mark) cout<<"Ignored"<<endl;
30             else cout<<str1[++now]<<endl;
31         }
32             n++;
33     }
34     return 0;
35 }

 

posted @ 2016-05-16 21:26  一个_小菜鸟  阅读(185)  评论(0编辑  收藏  举报