博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1028: Web Navigation
阅读量:6111 次
发布时间:2019-06-21

本文共 1552 字,大约阅读时间需要 5 分钟。

hot3.png

解题思路:就是用栈来模拟浏览器的前进、后退操作。

代码:

#include 
struct stack {public: stack() : top(0), bottom(0) {} void push(const char *page); void pop(char *page); bool is_empty(); void clear();private: void str_copy(char *des, const char *src); char url[101][71]; int top, bottom;};void stack::str_copy(char *des, const char *src) { while ((*des++ = *src++));}void stack::push(const char *page) { str_copy(url[top++], page);}void stack::pop(char *page) { str_copy(page, url[--top]);}bool stack::is_empty() { return top == bottom;}void stack::clear() { top = bottom = 0;}int main() { char cmd[8]; char cur_page[71] = "http://www.acm.org/"; stack fw_stack, bw_stack; while (scanf("%s", cmd) && cmd[0] != 'Q') { switch (cmd[0]) { case 'V': bw_stack.push(cur_page); fw_stack.clear(); scanf("%s", cur_page); printf("%s\n", cur_page); break; case 'B': if (bw_stack.is_empty()) { printf("Ignored\n"); } else { fw_stack.push(cur_page); bw_stack.pop(cur_page); printf("%s\n", cur_page); } break; case 'F': if (fw_stack.is_empty()) { printf("Ignored\n"); } else { bw_stack.push(cur_page); fw_stack.pop(cur_page); printf("%s\n", cur_page); } break; } } return 0;}

转载于:https://my.oschina.net/Alexanderzhou/blog/203262

你可能感兴趣的文章
C++ 11 lambda
查看>>
Hadoop2.5.0 搭建实录
查看>>
实验吧 recursive write up
查看>>
High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件
查看>>
go test命令參数问题
查看>>
linux 搜索文本
查看>>
超实用Mac软件分享(二)
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>
Oracle表分区
查看>>
centos 下安装g++
查看>>
嵌入式,代码调试----GDB扫盲
查看>>
类斐波那契数列的奇妙性质
查看>>
配置设置[Django]引入模版之后报错Requested setting TEMPLATE_DEBUG, but settings are not configured....
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
代码描述10313 - Pay the Price
查看>>
jQuery最佳实践
查看>>