数据结构--栈--浏览器前进后退应用

浏览器前进后退:
当你依次浏览a,b,c,然后回到b,再浏览d,就只能查看a,b,d,了。
原理: 利用两个栈A,B

  1. 浏览新网页的时候,压入栈A,清空栈B
  2. 前进,栈A获取栈B的栈顶元素,栈B弹栈,并压入栈A
  3. 后退,栈B获取栈A的栈顶元素,栈A弹栈,并压入栈B

题目:LeetCode 5430. 设计浏览器历史记录(双栈)

browser.h头文件

//
// Created by mingm on 2019/3/31.
//
#ifndef STACK_BROWSER_H
#define STACK_BROWSER_H#include "stack.cpp"
class Browser
{
private:Stack<const char*> forward_stack, back_stack;void displayCurWeb(const char *ch){cout << "Current web is : " << ch << endl;}
public:Browser(){}~Browser(){}void forward(){if(!back_stack.Empty()){forward_stack.Push(back_stack.GetTop()->data);back_stack.Pop();displayCurWeb(forward_stack.GetTop()->data);}else{cout << "can not forward, there is no more page!" << endl;displayCurWeb(forward_stack.GetTop()->data);}}void back(){if(forward_stack.GetLength()>1){back_stack.Push(forward_stack.GetTop()->data);forward_stack.Pop();displayCurWeb(forward_stack.GetTop()->data);}else{cout << "can not back, there is no more page! " << endl;displayCurWeb(forward_stack.GetTop()->data);}}void browseWeb(const char* ch){back_stack.Clear();forward_stack.Push(ch);displayCurWeb(forward_stack.GetTop()->data);}
};
#endif //STACK_BROWSER_H

测试程序 browser_stack_main.cpp

//浏览器前进后退功能,栈实现
// Created by mingm on 2019/3/31.
//
#include "browser.h"
#include <iostream>
using namespace std;int main()
{Browser webBrowser;webBrowser.browseWeb("baidu.com");webBrowser.browseWeb("google.com");webBrowser.browseWeb("163.com");cout << "forward..." << endl;webBrowser.forward();cout << "back..." << endl;webBrowser.back();cout << "browse mi.com ..." << endl;webBrowser.browseWeb("mi.com");cout << "forward..." << endl;webBrowser.forward();cout << "back..." << endl;webBrowser.back();cout << "back..." << endl;webBrowser.back();cout << "back..." << endl;webBrowser.back();cout << "forward..." << endl;webBrowser.forward();
}

valgrind测试结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于BERT,面试官们都怎么问

1.BERT 的基本原理是什么&#xff1f;BERT 来自 Google 的论文Pre-training of Deep Bidirectional Transformers for Language Understanding&#xff0c;BERT 是“Bidirectional Encoder Representations from Transformers”的首字母缩写&#xff0c;整体是一个自编码语言模…

牛逼!支付宝高级Java三面题目:线程锁+事务+雪崩+Docker等

支付宝高级Java一面 JVM中的老年代在什么情况下会触发GC&#xff1f; CMS的垃圾回收步骤&#xff0c;G1和CMS的区别&#xff1f; CMS哪个阶段是并发的&#xff0c;哪个阶段是串行的&#xff1f; 谈谈Java线程池&#xff0c;线程池中几个参数含义 谈谈你了解的J.U.C包的JDK源…

鲍捷 | 深度解析知识图谱发展关键阶段及技术脉络

本文转载自公众号&#xff1a; AI科技大本营 。 分享嘉宾 | 鲍捷&#xff08;文因互联CEO&#xff09;出品 | AI科技大本营&#xff08;公众号ID&#xff1a;rgznai100&#xff09;知识图谱是人工智能三大分支之一——符号主义——在新时期主要的落地技术方式。该技术虽然在 20…

8大常用数据库管理系统简介

转自&#xff1a;http://vps.zzidc.com/vpsjishu/817.html 数据库管理系统(Database Management System)是种操纵和管理数据库的大型软件&#xff0c;是用于建立、使用和维护数据库&#xff0c;简称DBMS。是企业进行数据管理及维护不可或缺的数据管理软件。 8大常用数据库管理系…

知识图谱之语言计算与信息抽取

语言计算与信息抽取是自然语言处理中两块重要内容。本文将根据自己的工作总结&#xff0c;形成了语言计算与信息抽取的知识图谱分布图。 一、总体图谱 二、概念抽取 三、实体抽取 四、事件抽取 五、语言监测 六、文本计算内容 七、文本内容计算应用 总结 本文介绍了关于语言…

数据结构--队列Queue--链式队列、顺序队列

队列&#xff1a;先进先出&#xff0c;就如排队一样&#xff0c;先到的&#xff0c;先排上 1.链式队列 1.1 头文件 listQueue.h /*** description: 链式队列* author: michael ming* date: 2019/4/1 22:47* modified by:*/#ifndef QUEUE_LISTQUEUE_H #define QUEUE_LISTQUEU…

技术动态 | 人工智能开源软件发展现状连载——知识图谱开源软件

本文转载自公众号&#xff1a;中国人工智能开源软件发展联盟&#xff0c;欢迎大家点击文末二维码关注。知识图谱 (Knowledge Graph)是一种基于图的数据结构&#xff0c;由节点(Point)和边(Edge)组成。在知识图谱里&#xff0c;每个节点表示现实世界中存在的“实体”&#xff0c…

2018 支付宝Java开发四面:Ngnix+MQ队列+集群+并发抢购

一面 介绍项目 java 线程池的实现原理&#xff0c;threadpoolexecutor关键参数解释 hashmap的原理&#xff0c;容量为什么是2的幂次 为什么要同时重写hashcode和equals ConcurrentHashMap如何实现线程安全&#xff1f; 介绍Java多线程的5大状态&#xff0c;以及状态图流转…

ACL2020 | 线上搜索结果大幅提升!亚马逊提出对抗式query-doc相关性模型

一只小狐狸带你解锁 炼丹术&NLP 秘籍作者&#xff1a;机智的叉烧&#xff08;OPPO算法工程师&#xff0c;擅长Query理解方向&#xff09;背景搜索和推荐经常会被放在一起对比&#xff0c;其中最突出的区别就是搜索中存在query&#xff0c;需要充分考虑召回内容和query之间的…

微型计算机性能指标以及分类

衡量微型计算机的主要技术指标是&#xff1f;特点是&#xff1f; 2018-11-29 20:38:08 来源&#xff1a;贤集网 赵媛 微型计算机大家应该耳熟能详&#xff0c;它又比称为“微型机”&#xff0c;由于其具备人脑的某些功能&#xff0c;所以也称其为“微电脑”。现在流行的微…

领域应用 | 为电商而生的知识图谱,如何感应用户需求?

本文转载自公众号&#xff1a;阿里技术(ali_tech)。 阿里妹导读&#xff1a;本文从需求分析和体系化构建的角度出发&#xff0c;阐述在电商这一特殊领域的知识图谱构建过程中&#xff0c;形成的一整套概念体系&#xff0c;还有在此过程中&#xff0c;通过算法、工程、产品、…

史上最全阿里Java面试题目大汇总!强烈建议收藏~

阿里面试题目目录 技术一面&#xff08;基础面试题目&#xff09; 技术二面&#xff08;技术深度、技术原理&#xff09; 项目实战&#xff08;项目模拟面试&#xff09; JAVA开发技术常问的问题 阿里必会知识 阿里面试范畴 阿里面试总结 一&#xff1a;阿里技术一面&…

数据结构与算---重点复习知识

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/sakurakider/article/details/82924371 </div><link rel"stylesheet" href"https://csdnimg.cn/release/phoeni…

GPT-3诞生,Finetune也不再必要了,NLP领域又一核弹

本文转载自公众号“夕小瑶的卖萌屋”&#xff0c;专业带逛互联网算法圈的神操作 -----》我是传送门 关注后&#xff0c;回复以下口令&#xff1a; 回复【789】 &#xff1a;领取深度学习全栈手册&#xff08;含NLP、CV海量综述、必刷论文解读&#xff09; 回复【入群】&…

POJ 1363 火车厢排队问题(栈)

题目链接&#xff1a;http://poj.org/problem?id1363 题目大意&#xff1a; A站有编号为1到N&#xff0c;N最大1000&#xff0c;的车厢&#xff0c;车厢进入中转station了就不能回到A&#xff0c;只能停在station内或者进入B站&#xff0c;问能不能按照给定的顺序排成那样的车…

徐阿衡 | 知识抽取-实体及关系抽取(一)

本文转载自公众号&#xff1a;徐阿衡。 这一篇是关于知识抽取&#xff0c;整理并补充了上学时的两篇笔记 NLP笔记 - Information Extraction 和 NLP笔记 - Relation Extraction&#xff0c;梳理了知识抽取的基本方法&#xff0c;包括传统机器学习及经典的深度学习方法。知识抽取…

非常全面的阿里的Java面试题目,涵盖Java基础+高级+架构

阿里技术一面 自我介绍 Java中多态是怎么实现的 Java中的几种锁 数据库隔离级别 脏读 幻读 ACID mysql的隔离级别 mysql索引实现&#xff0c;如何解决慢查询 数据库锁是怎么实现的 死锁的条件&#xff0c;进程和线程区别 tcp/ip模型&#xff0c;tcp和udp区别 Linux查看…

常见数据结构与算法整理总结(上)

原文链接&#xff1a;https://www.jianshu.com/p/230e6fde9c75 常见数据结构与算法整理总结&#xff08;上&#xff09; 最后编辑于 2017.12.04 03:29">2016.09.22 10:51*</span>数据结构是以某种形式将数据组织在一起的集合&#xff0c;它不仅存储数据&#xff…

卖萌屋原创专辑首发,算法镇魂三部曲!

一只小狐狸带你解锁炼丹术&NLP秘籍震惊&#xff01;乐坛新人夕小瑶的卖萌屋今日重磅发布三张原创专辑&#xff01;&#xff01;????点击试听????点击试听????点击试听虽然卖萌屋常常被大家戏称为“仙女屋”、“神仙屋”、“宝藏屋”等&#xff0c;但卖萌屋更希…

POJ 1028 浏览器前进后退(双栈)

题目链接&#xff1a;http://poj.org/problem?id1028 我的相同博文参考&#xff1a;https://blog.csdn.net/qq_21201267/article/details/88938360 LeetCode 5430. 设计浏览器历史记录&#xff08;双栈&#xff09; 解题思路参考上面博文。直接贴出代码&#xff1a; #inclu…