摘要:浏览器前进后退的实现,stack的操作
#include <iostream>
#include <string>
using namespace std;
const int size = 100;
string forward[size+1];
string backward[size+1];
int f_pos = 1;
int b_pos = 1;
int main()
{
string current = "http://www.acm.org/";
while( true ){
string command, url;
cin >> command;
if( command == "QUIT" ){
break;
}
if( command == "VISIT"){
cin >> url;
f_pos = 1;
backward[b_pos++] = current;
current = url;
cout << current << endl;
continue;
}
if( command == "BACK" ){
if( b_pos == 1 ){
cout << "Ignored" << endl;
}else{
forward[f_pos++] = current;
current = backward[b_pos-1];
cout << backward[--b_pos] << endl;
}
continue;
}
if( command == "FORWARD" ){
if( f_pos == 1 ){
cout << "Ignored" << endl;
}else{
backward[b_pos++] = current;
cout << forward[--f_pos] << endl;
current = forward[f_pos];
}
continue;
}
}
return 0;
}