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;
}



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。