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 }

 

转载于:https://www.cnblogs.com/Tree-dream/p/5499552.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值