JavaScript中棧和隊列應用詳情
什么是棧和隊列
棧如果用數(shù)組模擬的話是類似于一個U
形桶狀堆??臻g,地下是封口的,只能從頂部一個地方進出,它的進出都是有順序的,看下圖:如果是進入,則是最下是最先進入的,如果要出,則是從最頂部先出
和隊列來對比,只是數(shù)據(jù)結構相同,隊列是一側進一側出,做任務隊列調度的時候都是先入先出
什么時候用到棧
從編輯器開發(fā)寫代碼的時候,如果代碼的中的括號寫錯了,則很容易判定出那個地方少了括號,在JavaScript
語法中有可以設定大括號{}
、中括號:[]
、小括號:()
、引號:""
等可以判定的規(guī)則, 可以發(fā)現(xiàn)它是有一些規(guī)則的,可以通過兩側是否對稱來進行判斷,如果不對稱則提示錯誤
function (b){ let a = [] let obj = {"(":")","[":"]","{":"}"} for(let i = 0;i<b.length;i++ ){ const last = b[i] if(last in obj){ a.push(ele) }else{ if(ele!= obj[stack.pop]){ return false } } } return !a.length }
思路:它在棧中首先通過遍歷把數(shù)組的每一位放到棧中,如果發(fā)現(xiàn)放入棧中有相同的字符則把它兩個同時推出,在代碼中,循環(huán)遍歷對象如果傳入的對象在Obj
中有的話,則繼續(xù),如果沒有停止遍歷
目錄的計算
在Nodejs
中經(jīng)常碰到目錄的處理,比如webpack
,目標是把當前的相對路徑轉換為絕對路徑,/a/b/../c./b
,這種格式,pathResult
,把傳入的字符串通過/
拆分成數(shù)組,并判定它是否為空或者是是否相對路徑,并把它拆分并放到數(shù)組
function (path){ var pathArr = path.split('/') var newPath = [] arr.forEach(temp=>{ if(temp == '' || temp == '.'){ return }else if(item == '..'){ if(newPath.length){ newPath.pop() }else{ return } }else{ newPath.push(item) } }) }
它在棧中的應用是把每個對應的路徑名傳入到棧中,如果碰到相對路徑則,轉換為絕對路徑,最后在返回出 最后把該數(shù)組,通過/
拆分成字符串 return "/"+newPath.join('/')
到此這篇關于JavaScript中棧和隊列應用詳情的文章就介紹到這了,更多相關JavaScript 棧和 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java基于ReadWriteLock實現(xiàn)鎖的應用
這篇文章主要介紹了Java基于ReadWriteLock實現(xiàn)鎖的應用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10Java基于API接口爬取商品數(shù)據(jù)的示例代碼
Java作為一種流行的編程語言,可以用于編寫程序來調用這些API接口,從而獲取商品數(shù)據(jù),本文將介紹如何使用Java基于API接口爬取商品數(shù)據(jù),包括請求API、解析JSON數(shù)據(jù)、存儲數(shù)據(jù)等步驟,并提供相應的代碼示例,感興趣的朋友跟隨小編一起看看吧2023-10-10SpringBoot?JavaMailSender發(fā)送郵件功能(實例詳解)
JavaMailSender是Spring提供的,非常好用的,實現(xiàn)郵件發(fā)送的接口 ,這篇文章主要介紹了SpringBoot?JavaMailSender發(fā)送郵件功能,需要的朋友可以參考下2024-03-03springboot中使用mybatisplus自帶插件實現(xiàn)分頁的示例代碼
這篇文章主要介紹了springboot中使用mybatisplus自帶插件實現(xiàn)分頁,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09springboot基于docsify?實現(xiàn)隨身文檔
這篇文章主要介紹了springboot基于docsify實現(xiàn)隨身文檔的相關資料,需要的朋友可以參考下2022-09-09基于Springboot實現(xiàn)JWT認證的示例代碼
本文主要介紹了基于Springboot實現(xiàn)JWT認證,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11