本人急招一名临时工,seo优化是怎么回事呢,河北建设网站,简约个人网站浏览器前进后退#xff1a; 当你依次浏览a#xff0c;b#xff0c;c,然后回到b#xff0c;再浏览d#xff0c;就只能查看a#xff0c;b#xff0c;d#xff0c;了。 原理#xff1a; 利用两个栈A,B
浏览新网页的时候#xff0c;压入栈A#xff0c;清空栈B前进…浏览器前进后退 当你依次浏览abc,然后回到b再浏览d就只能查看abd了。 原理 利用两个栈A,B
浏览新网页的时候压入栈A清空栈B前进栈A获取栈B的栈顶元素栈B弹栈并压入栈A后退栈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:Stackconst 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测试结果