poj1028 模拟浏览器后退和前进(栈)
题目是让模拟实现一下浏览器的后退和前进功能,题目中也有提示,用两个栈就可以了,比较简单。
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct {
- int top;//栈顶
- char* s[100];
- } Stack;
- /**
- *初始化
- */
- Stack* create_stack(){
- Stack* stack=(Stack*)(malloc(sizeof(Stack)));
- stack->top=-1;
- memset(stack->s,0,sizeof(stack->s));
- return stack;
- }
- void push(Stack* stack,char* str){
- stack->s[++stack->top]=str;
- }
- char* pop(Stack* stack){
- int top=stack->top;
- if(top==-1){
- return NULL;
- }
- stack->top--;
- return stack->s[top];
- }
- int isEmpty(Stack* stack){
- return stack->top==-1;
- }
- int main(void){
- Stack* forward=create_stack();
- Stack* backward=create_stack();
- char* home_page="http://www.acm.org/";
- char* current_page=home_page;
- char command[8];
- while(1){
- scanf("%s",command);
- if(command[0]=='Q'){//QUIT
- break;
- }else if(command[0]=='V'){//VISIT
- push(backward,current_page);
- char *str=(char*)malloc(sizeof(char)*71);
- scanf("%s",str);
- current_page=str;
- forward->top=-1;
- printf("%s\n",str);
- }else if(command[0]=='B'){//BACK
- if(isEmpty(backward)){
- printf("Ignored\n");
- }else{
- push(forward,current_page);
- current_page=pop(backward);
- printf("%s\n",current_page);
- }
- }else{//FORWARD
- if(isEmpty(forward)){
- printf("Ignored\n");
- }else{
- push(backward,current_page);
- current_page=pop(forward);
- printf("%s\n",current_page);
- }
- }
- }
- int i;
- for(i=0;i<100;i++){//释放下堆内存.....
- char* tmp=backward->s[i];
- if(tmp&&tmp!=home_page){
- free(backward->s[i]);
- }
- }
- free(forward);
- free(backward);
- return 0;
- }
poj1028 模拟浏览器后退和前进(栈)相关推荐
- java使用selenium实现模拟浏览器操作API大全 模拟登录
java selenium 模拟登录 模拟浏览器 API大全 (一)环境安装之Java (二)环境安装之IntelliJ IDEA (三)环境安装之Selenium 1.通过jar包安装 2.通过Ma ...
- POJ 1028 浏览器前进后退(双栈)
题目链接:http://poj.org/problem?id=1028 我的相同博文参考:https://blog.csdn.net/qq_21201267/article/details/88938 ...
- LeetCode 1472. 设计浏览器历史记录(双栈)
1. 题目 你有一个只支持单个标签页的 浏览器 ,最开始你浏览的网页是 homepage ,你可以访问其他的网站 url ,也可以在浏览历史中后退 steps 步或前进 steps 步. 请你实现 B ...
- 模拟浏览器操作程序(数据结构课设)
文章目录 前言 一.题目 二.系统设计 2.1 功能模块图 2.2 主要功能函数 三.问题分析 四.实验结果及分析 五.源码 总结 前言 20级cqut的别抄! 一.题目 模拟浏览器操作程序:标准的 ...
- python 模拟浏览器selenium_使用Selenium模拟浏览器,实现自动爬取数据
最近需要在一个网站下载一批数据.但是输入一个查询,返回三四万条结果,每次只能导出500条,而且每次还得输入下载条目的范围!这样点击下载,还不要了我的老命.于是乎想自动化这个过程. 我的需求主要是两点: ...
- 爬虫selenium + chrome (PhantomJS)模拟浏览器 抓取京东商城为例
# /usr/bin/env python # -*- coding: utf-8 -*- # @Time : 18-4-27 下午8:21 # @Author : 杨星星 # @Email : ya ...
- Python利用Selenium模拟浏览器自动操作
概述 在进行网站爬取数据的时候,会发现很多网站都进行了反爬虫的处理,如JS加密,Ajax加密,反Debug等方法,通过请求获取数据和页面展示的内容完全不同,这时候就用到Selenium技术,来模拟浏览 ...
- ajax浏览器后退 iframe,ajax后退解决方案
一.使用iframe,通过document.write产生历史 0 0 var info = document.getElementById('info'); var i = 1; function ...
- Python 模拟浏览器访问网页,Selenium库的详细使用
(一)Selenium基础 入门教程:Selenium官网教程 1.Selenium简介 Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome.Firefox.Safar ...
最新文章
- html文件如何放到服务器上_对网盘泄露说不,自己数据放到自己服务器上,用群辉搭建个人网盘...
- highcharts 显示网格
- MSSQL数据库设计心得
- 灵活正确的实现.NET插件机制
- python 获取窗口句柄_Python如何自动化哄女朋友
- #425[div2]
- 微信代金券--免充值代金券创建、激活、发放,查看详情
- Scala实现Kafka生产者与消费者实例
- 小程序服务器获取appid,微信小程序小程序appid如何获取
- 压缩包加密后门_加密后门的问题
- 第4章 数据库应用系统功能设计与实施
- opencv教程(基于python)----关于滑条
- python mkl 锐龙 cpu_Matlab 升级适配 AMD 锐龙,满血性能轻松提升 60%
- Python模拟键盘输入(附Python 键位码表)
- 穿山甲插屏广告居中_自渲染插屏
- OA系统实现(请假审批,mybatis)-1
- oracle数据库怎么ping,Oracle中tnsping命令解析
- Matlab做一个刚体运动仿真,模拟小车避障
- javaweb复习笔记总结
- leafler如何清除地图上的图标点
热门文章
- 【Android 逆向】Android 逆向通用工具开发 ( 静态库项目中的网络操作核心类 CNetwork 分析 )
- 【Flutter】Hero 动画 ( Hero 实现径向动画 | Hero 组件 createRectTween 设置 )
- 【Java 网络编程】UDP 服务器 与 客户端持续交互 案例
- chrome手机模拟器显示尺寸不正确
- java Socket Tcp 浏览器和服务器(一)
- 友元实例:友元类及友元函数
- linux(4)-Ptrace 系统调用的使用
- Ubuntu虚拟机JeOS安装-2016.08.28
- openStack 租户控制台修改虚拟机账户密码
- C语言OJ项目参考(2399)求倒数和