pku 1028 Web Navigation(双栈模拟)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

 

#define MAXCMDLEN 10
#define MAXURLLEN 75
#define MAXSTKSIZE 105

char cmd[MAXCMDLEN];
char inURL[MAXURLLEN];
char *curURL;

char stkBackward[MAXSTKSIZE][MAXURLLEN];
char stkForward[MAXSTKSIZE][MAXURLLEN];
int bTop, fTop;

char initURL[] = "http://www.acm.org/";

int main()
{
    #ifndef ONLINE_JUDGE
    freopen("indata.txt", "r", stdin);
    #endif

    bTop = fTop = -1;
    curURL = initURL;

    while(scanf("%s", cmd) != EOF)
    {
        switch(cmd[0])
        {
            case 'V':
                strcpy(stkBackward[++bTop], curURL);
                scanf("%s", inURL);
                curURL = inURL;
                printf("%s\n", curURL);
                fTop = -1;
                break;
            case 'B':
                if(bTop == -1) printf("Ignored\n");
                else
                {
                    strcpy(stkForward[++fTop], curURL);
                    curURL = stkBackward[bTop--];
                    printf("%s\n", curURL);
                }
                break;
            case 'F':
                if(fTop == -1) printf("Ignored\n");
                else
                {
                    strcpy(stkBackward[++bTop], curURL);
                    curURL = stkForward[fTop--];
                    printf("%s\n", curURL);
                }
                break;
            default:
                bTop = fTop = -1;
                curURL = initURL;
                break;
        }
    }
    return 0;
}

 

posted @ 2010-11-14 16:06  菜到不得鸟  阅读(155)  评论(0)    收藏  举报