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