JS實(shí)現(xiàn)利用兩個(gè)隊(duì)列表示一個(gè)棧的方法
本文實(shí)例講述了JS實(shí)現(xiàn)利用兩個(gè)隊(duì)列表示一個(gè)棧的方法。分享給大家供大家參考,具體如下:
先看原理圖:
理清楚思路,再動(dòng)筆寫:
<!DOCTYPE html> <html> <head> <title>2 Queue</title> <meta charset="utf-8"/> <script type="text/javascript"> var arr1 = []; var arr2 = []; function Queue(arr){ this.push = function(element){ return arr.push(element); } this.pop = function(){ return arr.shift(); } this.size = function(){ return arr.length; } this.display = function(){ console.log(arr); } } var queue1 = new Queue(arr1); queue1.push(1); queue1.push(4); queue1.push(5); queue1.push(7); queue1.display(); var queue2 = new Queue(arr2); //利用兩個(gè)隊(duì)列實(shí)現(xiàn)棧。放在數(shù)組中打印 var res = [], k = 0; while(queue1.size()!=0){ var len = queue1.size(); for(var i = 0; i<len-1; i++){ queue2.push(queue1.pop()); } // 打印queue1最后一個(gè)元素,并出隊(duì) res[k] = queue1.pop(); ++k; // 隊(duì)列2的元素放置到隊(duì)列1中 for(var i = 0; i<len-1; i++){ queue1.push(queue2.pop()); } } console.log("res:" + res); //利用兩個(gè)隊(duì)列實(shí)現(xiàn)棧。單個(gè)彈出 while(queue1.size()!=0){ var len = queue1.size(); for(var i = 0; i<len-1; i++){ queue2.push(queue1.pop()); } // 打印queue1最后一個(gè)元素,并出隊(duì) console.log(queue1.pop()); // 隊(duì)列2的元素放置到隊(duì)列1中 for(var i = 0; i<len-1; i++){ queue1.push(queue2.pop()); } } </script> </head> <body> </body> </html>
運(yùn)行結(jié)果:
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- 深入JavaScript高級(jí)程序設(shè)計(jì)之對(duì)象、數(shù)組(棧方法,隊(duì)列方法,重排序方法,迭代方法)
- JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之棧與隊(duì)列
- JS實(shí)現(xiàn)隊(duì)列與堆棧的方法
- JavaScript數(shù)組實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的隊(duì)列與堆棧
- JavaScript數(shù)組的棧方法與隊(duì)列方法詳解
- JavaScript數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之?dāng)?shù)組、棧與隊(duì)列
- JavaScript棧和隊(duì)列相關(guān)操作與實(shí)現(xiàn)方法詳解
- JavaScript基于數(shù)組實(shí)現(xiàn)的棧與隊(duì)列操作示例
- 如何使用JavaScript實(shí)現(xiàn)棧與隊(duì)列
- JavaScript中棧和隊(duì)列應(yīng)用詳情
相關(guān)文章
form表單數(shù)據(jù)封裝成json格式并提交給服務(wù)器的實(shí)現(xiàn)方法
下面小編就為大家分享一篇form表單數(shù)據(jù)封裝成json格式并提交給服務(wù)器的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12詳解JavaScript基于面向?qū)ο笾畡?chuàng)建對(duì)象(2)
這篇文章主要介紹了JavaScript基于面向?qū)ο笾畡?chuàng)建對(duì)象,詳細(xì)的分析面向?qū)ο蟮脑头绞揭约捌渌C合的方式,感興趣的小伙伴們可以參考一下2015-12-12uniapp自定義網(wǎng)絡(luò)檢測組件項(xiàng)目實(shí)戰(zhàn)總結(jié)分析
這篇文章主要為大家介紹了uniapp自定義網(wǎng)絡(luò)檢測組件項(xiàng)目實(shí)戰(zhàn)總結(jié)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09js實(shí)現(xiàn)盒子滾動(dòng)動(dòng)畫效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)盒子滾動(dòng)動(dòng)畫效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08JavaScript+Java實(shí)現(xiàn)HTML頁面轉(zhuǎn)為PDF文件保存的方法
借助iText這個(gè)Java庫,我們可以將HTML文件保存為圖片文件進(jìn)而轉(zhuǎn)換成PDF格式,接下來就來具體看下JavaScript+Java實(shí)現(xiàn)HTML頁面轉(zhuǎn)為PDF文件保存的方法2016-05-05JS實(shí)現(xiàn)定時(shí)任務(wù)每隔N秒請(qǐng)求后臺(tái)setInterval定時(shí)和ajax請(qǐng)求問題
這篇文章主要介紹了JS實(shí)現(xiàn)定時(shí)任務(wù)每隔N秒請(qǐng)求后臺(tái)setInterval定時(shí)和ajax請(qǐng)求 的相關(guān)資料,需要的朋友可以參考下2017-10-10javascript中json對(duì)象json數(shù)組json字符串互轉(zhuǎn)及取值方法
這篇文章主要介紹了javascript中json對(duì)象json數(shù)組json字符串互轉(zhuǎn)及取值方法,需要的朋友可以參考下2017-04-04