日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

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

發布時間:2024/7/5 HTML 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构--栈--浏览器前进后退应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

瀏覽器前進后退:
當你依次瀏覽a,b,c,然后回到b,再瀏覽d,就只能查看a,b,d,了。
原理: 利用兩個棧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: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測試結果

    總結

    以上是生活随笔為你收集整理的数据结构--栈--浏览器前进后退应用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。