javascript數(shù)組實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的隊列與堆棧_javascript技巧

javascript數(shù)組實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的隊列與堆棧_javascript技巧

ID:30777622

大?。?04.28 KB

頁數(shù):8頁

時間:2019-01-03

javascript數(shù)組實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的隊列與堆棧_javascript技巧_第1頁
javascript數(shù)組實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的隊列與堆棧_javascript技巧_第2頁
javascript數(shù)組實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的隊列與堆棧_javascript技巧_第3頁
javascript數(shù)組實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的隊列與堆棧_javascript技巧_第4頁
javascript數(shù)組實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的隊列與堆棧_javascript技巧_第5頁
資源描述:

《javascript數(shù)組實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的隊列與堆棧_javascript技巧》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、JavaScript數(shù)組實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的隊歹(J與堆棧一、隊列和堆棧的簡單介紹1?1、隊列的基本概念隊列:是一種支持先進(jìn)先出(FIFO)的集合,即先被插入的數(shù)據(jù),先被取出!如下圖所示:舉一31a?an亠_隊頭隊尾隊列1.2、堆棧的基本概念堆棧:是一種支持后進(jìn)先出(LIFO)的集合,即后被插入的數(shù)據(jù),先被取出!如下圖所示:入棧二、在JavaScript中實現(xiàn)隊列和堆棧在JavaScript中實現(xiàn)隊列和數(shù)組主要是通過數(shù)組,js數(shù)組中提供了以下兒個方法可以訃我們很方便實現(xiàn)隊列和堆棧:?shift:從數(shù)組中把第一個元索刪除,并返回這個元索的值。?unshift:在數(shù)組的開頭

2、添加一個或更多元索,并返回新的長度?push:在數(shù)組的小末尾添加兀素,并返回新的長度?pop:從數(shù)組中把最后一個元素刪除,并返回這個元素的值。2.1、實現(xiàn)隊列〃創(chuàng)建一個數(shù)組來模擬隊列var3二newArray();console.log(a);//unshift:在數(shù)組的開頭添加一個或更多元索,并返回新的長度console.log(z,入隊〃);&imshift()console,log(a);//>a.unshift();console,log(a);//>,a.unshift();consolc.log

3、(a);//>,,&unshift();console.log(a);//>,,,console.1og(“出隊,先進(jìn)先出〃);console?log(a);//pop:從數(shù)組小把最后一個元素刪除,并返回這個元素的值3?pop();//>console.log(a);a.pop();//>console?log(a);&pop();//>console,log(a);a.pop0;//>console?1og(a);入隊[1][2,1]E2,1]【43,2,1]出臥>先進(jìn)先岀他3,2,1]33,2]心3]⑷2.2、實現(xiàn)堆棧

4、text/javascript"〉〃創(chuàng)建一個數(shù)組來模擬堆棧vara=newArray();console,log(a);//push:在數(shù)組的末尾添加一個或更多元素,并返回新的長度console,log(〃入?!?;3.push()console.log(a);//>a.push();console,log(a);//>,a.push();consolc.log(3);//>,,a.push();console,log(a);//>,,,console.logCtB棧,后進(jìn)先出〃);console,log(a);//pop:從數(shù)組中把最后一個元素刪除,并返回這個元素

5、的值a.pop();//>console,log(a);a.popO;//>console,log(a);a.pop0;//>console.log(a);a.pop();//>console,log(a);[]入棧flja2ja2,3]m2.3,4]出棧,后進(jìn)先出m乙九4]m2.3][1.2][1][J2.3、push方法和unshift方法的性能測試Array的push與unshift方法都能給當(dāng)前數(shù)組添加元素,不同的是,push是在末尾添加,而unshift則是在開頭添加,從原理就口J以知道,unshift的效率是較低的。原因是,它每添加一個

6、元素,都耍把現(xiàn)有元素往下移一個位置。但到底效率差異冇多大呢?下而來簡單測試一下。/*關(guān)于代碼中"vars=+ncwDatc();〃的技巧說明解釋如下:二+這個運算符是不存在的;+相當(dāng)于.valueOf();+newDate()相當(dāng)于newDate().valueOf()//個結(jié)果一樣返回當(dāng)前時間的毫秒數(shù)alert(+newDatcO);alert(+newDate);vars=newDate();alert(s.valueOf());alert(s.getTime());*/vararr=[];varst

7、artTime=+newDate();//+newDate()相當(dāng)于newDate().valueOf(),返回當(dāng)前吋間的毫秒數(shù)//push性能測試for(vari=;i<;i++){arr?push(i);}varendTime二+newDate();console.log(,z調(diào)用push方法往數(shù)組中添加個元索耗時z,+(cndTimc-startTimc)+z,毫秒〃);startTime=+newDate();arr=[];//unshift性能測試for(vari=;i<;i++){arr.unshift(i);1jcndTimc=+ncvDate(

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。