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