开到这个题目,想起了浏览器Lynx,用过两次,太难用了,汗,,貌似跑题了。
整个题目就是要了解一下浏览器的向前向后的特性,浏览器向后几步之后再输入网址就不能够向前浏览了。整个程序我就用一个数组来维护的,额,具体的细节看代码吧:
C语言:
#include <stdio.h>
#include <string.h>
#define MAX 10000
char link[MAX][71];
int tail, now;
void add(char *str)
{
int t = (now + 1) % MAX;
if(now == MAX){
exit(-1);
}
strcpy(link[t], str);
now = t;
tail = now + 1;
}
char *back(void)
{
if(now == 0){
return NULL;
}
return link[--now];
}
char *forward(void)
{
if(now + 1 == tail){
return NULL;
}
return link[++now];
}
void init(void)
{
tail = 0;
now = -1;
add(http://www.acm.org/);
}
int main(void)
{
char *t;
char command[8], address[71];
init();
while(scanf(%s, command)){
if(strcmp(command, BACK) == 0){
t = back();
if(t == NULL){
printf(Ignored\\n);
}else{
printf(%s\\n, t);
}
}else if(strcmp(command, FORWARD) == 0){
t = forward();
if(t == NULL){
printf(Ignored\\n);
}else{
printf(%s\\n, t);
}
}else if(strcmp(command, VISIT) == 0){
scanf(%s, address);
add(address);
printf(%s\\n, address);
}else{
break;
}
}
return 0;
}