前向后向栈知识
visit 把now加入后向栈 前向栈清空
back 把now加入前向栈 取后向栈top为now 并pop
front 把now加入后向栈 取前向栈top为now 并pop
(还要注意Ignored情况)
#include <iostream>
#include <stack>
using namespace std;
stack<string> q1, q2; //q1前向 q2后向
int main() {
string s;
string now = "***###.acm.org/";
while (cin >> s) {
if (s == "VISIT") {
q2.push(now); //先把now push进去 在处理输入变成当前页面
cin >> now;
cout << now << endl;
//q1.clear();
while (q1.size()) //前向栈清空
q1.pop();
} else if (s == "BACK") {
if (q2.empty()) {
cout << "Ignored" << endl;
continue;
}
q1.push(now); //这步也应该是建立在后向栈不为空情况 因为如果为空 则now还是now 不会被push进前向栈里
now = q2.top();
cout << now << endl;
q2.pop();
} else if (s == "FORWARD") {
if (q1.empty()) {
cout << "Ignored" << endl;
continue;
}
q2.push(now);
now=q1.top();
cout<<now<<endl;
q1.pop();
}else break;
}
}