如何使用JavaScript實現(xiàn)棧與隊列-創(chuàng)新互聯(lián)

前言

在呈貢等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站制作、成都網(wǎng)站制作 網(wǎng)站設(shè)計制作按需求定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,網(wǎng)絡營銷推廣,成都外貿(mào)網(wǎng)站制作,呈貢網(wǎng)站建設(shè)費用合理。

棧和隊列是web開發(fā)中最常用的兩種數(shù)據(jù)結(jié)構(gòu)。絕大多數(shù)用戶,甚至包括web開發(fā)人員,都不知道這個驚人的事實。如果你是一個程序員,那么請聽我講兩個啟發(fā)性的例子:使用堆棧來組織數(shù)據(jù),來實現(xiàn)文本編輯器的“撤消”操作;使用隊列處理數(shù)據(jù),實現(xiàn)web瀏覽器的事件循環(huán)處理事件(單擊click、懸停hoover等)。

等等,先想象一下我們作為用戶和程序員,每天使用棧和隊列的次數(shù),這太驚人了吧!由于它們在設(shè)計上有普遍性和相似性,我決定從這里開始為大家介紹數(shù)據(jù)結(jié)構(gòu)。


在計算機科學中,棧是一種線性數(shù)據(jù)結(jié)構(gòu)。如果你理解起來有困難,就像最初非常困惑的我一樣,不妨這樣認為:一個??梢詫?shù)據(jù)按照順序進行組織和管理。

要理解這種順序,我們可以把棧這種結(jié)構(gòu)想象為自助餐廳的一堆盤子,當一個盤子被疊加到一堆盤子上時,原有的盤子保留了它們原來的順序;同時,當一個新盤子被添加時,它會朝棧的底部方向堆積。每當我們添加一個新盤子時,被稱作入棧,這個新盤子處于棧的頂部,也被稱作棧頂。

這個添加盤子的過程會保留每個盤子被添加到棧中的順序,每次從棧中取出一個盤子時也是一樣的。我可能用了太多的篇幅來描述自助餐廳中的盤子是怎樣被添加和刪除的過程。

為了是大家理解棧更多的技術(shù)細節(jié),讓我們回顧一下前面關(guān)于文本編輯器的“撤消”操作。每次將文本添加到文本編輯器事,該文本被壓入棧中。其中第一次添加的文本代表棧的底部(棧底);最后一次的修改表示棧的頂部(棧頂)。如果用戶希望撤銷最后一次修改,則刪除處于棧的頂部的那段文本,這個過程可以不斷重復,一直到棧中沒有更多內(nèi)容,這時我們會得到一個空白文件。

棧的操作

現(xiàn)在我們對棧的模型有了基本概念,下一步就要定義棧的兩個操作:

  • push(data) 添加數(shù)據(jù)
  • pop() 刪除最后添加的數(shù)據(jù)

棧的實現(xiàn)

現(xiàn)在讓我們開始為棧編寫代碼吧!

棧的屬性

為了實現(xiàn)棧結(jié)構(gòu),我們將會創(chuàng)建一個名為 Stack 的構(gòu)造函數(shù)。棧的每個實例都有兩個屬性:_size 和 _storage。

function Stack() {
this._size = 0;
this._storage = {};
}

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享名稱:如何使用JavaScript實現(xiàn)棧與隊列-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://www.muchs.cn/article18/dhosgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、電子商務、網(wǎng)站收錄、響應式網(wǎng)站服務器托管、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設(shè)