Problem B: Web导航
[Creator : ]
Description
标准的Web浏览器包含在最近访问过的页面中向后和向前移动的功能。实现这些特性的一种方法是使用两个栈来跟踪前后移动可以到达的页面。支持以下命令。
- BACK:将当前页面推到前向栈的顶部。从后向栈的顶部弹出页面,使其成为新的当前页面。如果后向栈为空,则忽略该命令。
- FORWARD:将当前页面推到后向栈的顶部。从前向栈顶部弹出页面,使其成为新的当前页面。如果前向栈为空,则忽略该命令
- VISIT:将当前页面推到后向栈的顶部,使URL成为新的当前页面。前向栈清空。
- QUIT:退出浏览器。
Input
输入是一系列BACK、FORWARD、VISIT、QUIT命令。URL没有空白,最多有70个字符。任何时候,在每个栈中都不会超过100个元素。QUIT命令表示输入结束。
Output
对于除QUIT外的每个命令,如果不忽略该命令,则在执行该命令后单行输出当前页的URL,否则输出“Ignored”。QUIT命令没有输出。
Sample Input Copy
VISIT ***acm.ashland.edu/
VISIT ***acm.baylor.edu/acmicpc/
BACK
BACK
BACK
FORWARD
VISIT
***###.ibm.com/
BACK
BACK
FORWARD
FORWARD
FORWARD
QUIT
Sample Output Copy
***acm.ashland.edu/
***acm.baylor.edu/acmicpc/
***acm.ashland.edu/
***###.acm.org/
Ignored
***acm.ashland.edu/
***###.ibm.com/
***acm.ashland.edu/
***###.acm.org/
***acm.ashland.edu/
***###.ibm.com/
Ignored
HINT
栈(stack)只允许在栈顶操作,不允许在中间位置进行插入和删除操作,不支持数组表法和随机访问。使用stack时需要引入头文件#include<stack>。栈的基本操作很简单,包括入栈出栈、取栈顶、判断栈空、求栈大小。
- stack<int>s:创建一个空栈s,数据类型为int。
- push(x):x入栈。
- pop():出栈。
- top():取栈顶(未出栈)。
- empty():判断栈是否为空,若为空则返回true。
- size():求栈大小,返回栈中的元素个数。