摘要:棧棧是一種遵從后進(jìn)先出原則的有序集合。稱(chēng)作棧頂,另一端就叫棧底。棧的創(chuàng)建接下來(lái),是棧的方法添加新元素到棧頂。移除棧頂?shù)脑?,同時(shí)返回被移除的元素。比如要把十進(jìn)制轉(zhuǎn)化成二進(jìn)制,可以將十進(jìn)制數(shù)字和相除,直到結(jié)果是為止。
棧
棧是一種遵從后進(jìn)先出(LIFO)原則的有序集合。新添加的或者待刪除的元素都保存在棧的末尾。稱(chēng)作棧頂,另一端就叫棧底。在棧里,新元素都靠近棧頂,舊元素都接近棧底。
棧的創(chuàng)建function Stack(){ var items = []; }
接下來(lái),是棧的方法:
push(element) -- 添加新元素到棧頂。
pop() -- 移除棧頂?shù)脑?,同時(shí)返回被移除的元素。
peek() -- 返回棧頂?shù)脑?,但不?duì)棧做任何操作。
isEmpty() -- 如果棧里沒(méi)有任何元素就返回true,否則返回false。
clear() -- 移除棧里的所有元素。
size() -- 返回棧里的元素個(gè)數(shù)。
棧的完整代碼function Stack(){ var items = []; this.push = function(element){ items.push(element); } this.pop = function(){ return items.pop(); } this.peek = function(){ return items[items.length-1]; } this.isEmpty = function(){ return items.length == 0; } this.size = function(){ return items.length; } this.clear = function(){ items = []; } this.print = function(){ console.log(items.toString()); } }進(jìn)制轉(zhuǎn)換問(wèn)題
如何將十進(jìn)制與其他進(jìn)制進(jìn)行轉(zhuǎn)換,可以用stack來(lái)解決這個(gè)問(wèn)題。
比如要把十進(jìn)制轉(zhuǎn)化成二進(jìn)制,可以將十進(jìn)制數(shù)字和2相除,直到結(jié)果是0為止。
function baseConverter(decNumber,base){ var remStack = new Stack(), rem, baseString="", digits = "0123456789ABCDEF"; while(decNumber > 0){ rem = Math.floor(decNumber % base); remStack.push(rem); decNumber = Math.floor(decNumber / base); } while(!remStack.isEmpty()){ baseString += digits[remStack.pop()]; } return baseString; } console.log(baseConverter(100345,2)); console.log(baseConverter(100345,8)); console.log(baseConverter(100345,16));
參考書(shū)籍:Learning Javascript Data Structures and Algorithms
推薦一個(gè)找vue,angular組件的輪子工廠
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/88409.html
摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒(méi)想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...
摘要:年求職面經(jīng)及總結(jié)我的求職之路差不多走到盡頭了感覺(jué)真是精疲力盡了把這大半年的經(jīng)歷和面試總結(jié)寫(xiě)下來(lái)希望能給和我一樣在求職路上煎熬的人一點(diǎn)幫助先說(shuō)背景微電子科學(xué)與工程專(zhuān)業(yè)學(xué)過(guò)兩門(mén)和相關(guān)的課程語(yǔ)言和單片機(jī)這個(gè)專(zhuān)業(yè)的唯一好處就是大部分人并不知道這個(gè)專(zhuān) 18年求職面經(jīng)及總結(jié) 我的求職之路差不多走到盡頭了,感覺(jué)真是精疲力盡了.把這大半年的經(jīng)歷和面試總結(jié)寫(xiě)下來(lái),希望能給和我一樣在求職路上煎熬的人一點(diǎn)幫...
摘要:年求職面經(jīng)及總結(jié)我的求職之路差不多走到盡頭了感覺(jué)真是精疲力盡了把這大半年的經(jīng)歷和面試總結(jié)寫(xiě)下來(lái)希望能給和我一樣在求職路上煎熬的人一點(diǎn)幫助先說(shuō)背景微電子科學(xué)與工程專(zhuān)業(yè)學(xué)過(guò)兩門(mén)和相關(guān)的課程語(yǔ)言和單片機(jī)這個(gè)專(zhuān)業(yè)的唯一好處就是大部分人并不知道這個(gè)專(zhuān) 18年求職面經(jīng)及總結(jié) 我的求職之路差不多走到盡頭了,感覺(jué)真是精疲力盡了.把這大半年的經(jīng)歷和面試總結(jié)寫(xiě)下來(lái),希望能給和我一樣在求職路上煎熬的人一點(diǎn)幫...
摘要:道阻且長(zhǎng)啊前端面試總結(jié)前端面試筆試面試騰訊一面瀏覽器工作原理瀏覽器的主要組件包括用戶(hù)界面包括地址欄后退前進(jìn)按鈕書(shū)簽?zāi)夸洖g覽器引擎用來(lái)查詢(xún)及操作渲染引擎的接口渲染引擎渲染界面和是基于兩種渲染引擎構(gòu)建的,使用自主研發(fā)的渲染引擎,和都使用網(wǎng)絡(luò)用來(lái) 道阻且長(zhǎng)啊TAT(前端面試總結(jié)) 前端 面試 筆試 面試 騰訊一面 1.瀏覽器工作原理 瀏覽器的主要組件包括: 用戶(hù)界面- 包括地址欄、后退/前...
閱讀 1706·2021-11-15 11:37
閱讀 3446·2021-09-28 09:44
閱讀 1702·2021-09-07 10:15
閱讀 2816·2021-09-03 10:39
閱讀 2715·2019-08-29 13:20
閱讀 1320·2019-08-29 12:51
閱讀 2234·2019-08-26 13:44
閱讀 2157·2019-08-23 18:02