POJ 1028 Web Navigation 题解

时间:2022-10-24 22:08:14
POJ 1028 Web Navigation 题解

考查代码能力的题目。也能够说是算法水题,呵呵。

推荐新手练习代码能力。

要添加难度就使用纯C实现一下stack,那么就有点难度了,能够使用数组模拟环形栈。做多了,我就直接使用STL了。

#include <stdio.h>
#include <iostream>
#include <stack>
#include <string>
using namespace std; int main()
{
stack<string> forward;
stack<string> backward;
string cur = "http://www.acm.org/";
string cmd; while (cin>>cmd)
{
if (cmd == "QUIT") break; if (cmd == "VISIT")
{
backward.push(cur);
cin>>cur;
puts(cur.c_str());
forward = stack<string>();
}
else if (cmd == "BACK")
{
if (backward.empty())
{
puts("Ignored");
}
else
{
forward.push(cur);
cur = backward.top();
backward.pop();
puts(cur.c_str());
}
}
else if (cmd == "FORWARD")
{
if (forward.empty())
{
puts("Ignored");
}
else
{
backward.push(cur);
cur = forward.top();
forward.pop();
puts(cur.c_str());
}
}
}
return 0;
}