從瀏覽器到棧

2022-02-05 22:13:56 字數 939 閱讀 1538

補充說到棧我們總是先想到filo(first in last out), 有沒有什麼更貼切一點的例子呢?

有了,洗盤子其實和棧很像,我們總是從盤子的頂部拿起盤子,第乙個放的盤子是最後乙個拿出來的,符合filo, 這樣我們就能很自然地理解(stack),這種資料結構咯。

上面我們講了什麼是棧,那讓我們動手實現乙個吧。實現棧,我們既可以用陣列,也可以用鍊錶。前一種叫做順序棧,後一種則是鏈式棧.

關於表示式,我的第一反應是字尾表示式(逆波蘭表示法), 不過我們今天不討論這個,先來講一講簡單的四則運算。如果我們要計算3 + 5×8 -6,如何用棧實現呢?

我們假設表示式中只包含三種括號,圓括號(), 方括號 , 和花括號{}, 並且他們可以任意巢狀。那麼如何檢查他們是否合法呢?

我們可以用棧來儲存未匹配的左括號,從左到右依次掃瞄字串。當掃到左括號時,將其壓入棧中當掃瞄到右括號時,從棧頂取出乙個左括號。如果能夠匹配,則繼續掃瞄剩下的字串。如果掃瞄的過程中,遇到不能配對的右括號,或者棧中沒有資料,則為非法格式。

假如,我們開啟了 a,b,c 三個頁面,先從 c 回退到a, 再從 a 前進到 b,示意圖如下,運用雙棧實現。

圖源

最後,我們思考兩個問題:

從瀏覽器位址列輸入URL到瀏覽器呈現資料全過程解析

一 輸入裝置 或貼上 輸入 url,按下 enter鍵 或其他按鈕開始請求。二 瀏覽器開始解析 url 關於 url 到相關知識點 什麼是uri,url以及urn,你真的理解了嗎。1 url 是否合法 2 url 中的字元轉換 三 檢查本地快取,根據快取情況決定下一步的動作 1 強快取 cache ...

從輸入url到瀏覽器載入過程

從輸入url到頁面載入發生了什麼 最近在進行前端面試方面的一些準備,看了網上許多相關的文章,發現有乙個問題始終繞不開 在瀏覽器中輸入url到整個頁面顯示在使用者面前時這個過程中到底發生了什麼。仔細思考這個問題,發現確實很深,這個過程涉及到的東西很多。這個問題的回答真的能夠很好的考驗乙個web工程師的...

從php到瀏覽器的快取機制

所有的php程式設計師都知道在php指令碼裡面執行 echo 1 訪客的瀏覽器裡面就會顯示 1 但是我們執行下面的 的時候,並不是顯示 1 之後5秒再顯示 2 而是等待5秒後直接顯示 12 這就涉及到幾個快取機制,為了更高的薪水,同學們非常有必要把這個快取機制學習好。通常情況下,我們的web應用由以...