码迷,mamicode.com
首页 > 其他好文 > 详细

【POJ 1028】模拟浏览器

时间:2014-08-06 21:59:02      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   for   ar   

本题要求模拟浏览器的前进、后退等操作。

用两个栈实现,一个控制前进,一个控制后退。

在前进与后退操作中,从一个栈中弹出栈顶元素,压入另一个栈中。

当打开一个新网页时,将前进栈清空。

 

代码如下:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <stack>

using namespace std;

int top;

char Cmd[100 + 5], URL[1000 + 5][100 + 5];

stack<char *> backStack, foreStack;

void solveVisit()
{
    scanf("%s", URL[++top]);
    printf("%s\n", URL[top]);
    while (!foreStack.empty()) foreStack.pop();
    backStack.push(URL[top]);
}

void solveBack()
{
    if (backStack.size() == 1) 
    {
        printf("Ignored\n");
        return;
    }
    foreStack.push(backStack.top());
    backStack.pop();
    printf("%s\n", backStack.top());
}

void solveForward()
{
    if (foreStack.size() == 0) 
    {
        printf("Ignored\n");
        return;
    }
    printf("%s\n", foreStack.top());
    backStack.push(foreStack.top());
    foreStack.pop();
}

int main()
{
//    freopen("1.in", "r", stdin);
    strcpy(URL[++top], "http://www.acm.org/");
    backStack.push(URL[top]);
    while (~scanf("%s", Cmd))
    {
        if (!strcmp(Cmd, "QUIT")) return 0;
        if (!strcmp(Cmd, "VISIT")) solveVisit();
        if (!strcmp(Cmd, "BACK")) solveBack();
        if (!strcmp(Cmd, "FORWARD")) solveForward();
    }
    return 0;
}

 

【POJ 1028】模拟浏览器,布布扣,bubuko.com

【POJ 1028】模拟浏览器

标签:style   blog   http   color   os   io   for   ar   

原文地址:http://www.cnblogs.com/F-Magician/p/3895327.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!