javascript数组实现数据结构中的队列与堆栈_javascript技巧

javascript数组实现数据结构中的队列与堆栈_javascript技巧

ID:30777622

大小:104.28 KB

页数:8页

时间:2019-01-03

javascript数组实现数据结构中的队列与堆栈_javascript技巧_第1页
javascript数组实现数据结构中的队列与堆栈_javascript技巧_第2页
javascript数组实现数据结构中的队列与堆栈_javascript技巧_第3页
javascript数组实现数据结构中的队列与堆栈_javascript技巧_第4页
javascript数组实现数据结构中的队列与堆栈_javascript技巧_第5页
资源描述:

《javascript数组实现数据结构中的队列与堆栈_javascript技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JavaScript数组实现数据结构中的队歹(J与堆栈一、队列和堆栈的简单介绍1・1、队列的基本概念队列:是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出!如下图所示:举一31a?an亠_队头队尾队列1.2、堆栈的基本概念堆栈:是一种支持后进先出(LIFO)的集合,即后被插入的数据,先被取出!如下图所示:入栈二、在JavaScript中实现队列和堆栈在JavaScript中实现队列和数组主要是通过数组,js数组中提供了以下儿个方法可以讣我们很方便实现队列和堆栈:•shift:从数组中把第一个元索删除,并返回这个元索的值。•unshift:在数组的开头

2、添加一个或更多元索,并返回新的长度•push:在数组的小末尾添加兀素,并返回新的长度•pop:从数组中把最后一个元素删除,并返回这个元素的值。2.1、实现队列〃创建一个数组来模拟队列var3二newArray();console.log(a);//unshift:在数组的开头添加一个或更多元索,并返回新的长度console.log(z,入队〃);&imshift()console,log(a);//>a.unshift();console,log(a);//>,a.unshift();consolc.log

3、(a);//>,,&unshift();console.log(a);//>,,,console.1og(“出队,先进先出〃);console・log(a);//pop:从数组小把最后一个元素删除,并返回这个元素的值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]出臥>先进先岀他3,2,1]33,2]心3]⑷2.2、实现堆栈

4、text/javascript"〉〃创建一个数组來模拟堆栈vara=newArray();console,log(a);//push:在数组的末尾添加一个或更多元素,并返回新的长度console,log(〃入栈〃);3.push()console.log(a);//>a.push();console,log(a);//>,a.push();consolc.log(3);//>,,a.push();console,log(a);//>,,,console.logCtB栈,后进先出〃);console,log(a);//pop:从数组中把最后一个元素删除,并返回这个元素

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]出栈,后进先出m乙九4]m2.3][1.2][1][J2.3、push方法和unshift方法的性能测试Array的push与unshift方法都能给当前数组添加元素,不同的是,push是在末尾添加,而unshift则是在开头添加,从原理就口J以知道,unshift的效率是较低的。原因是,它每添加一个

6、元素,都耍把现有元素往下移一个位置。但到底效率差异冇多大呢?下而来简单测试一下。/*关于代码中"vars=+ncwDatc();〃的技巧说明解释如下:二+这个运算符是不存在的;+相当于.valueOf();+newDate()相当于newDate().valueOf()//个结果一样返回当前时间的毫秒数alert(+newDatcO);alert(+newDate);vars=newDate();alert(s.valueOf());alert(s.getTime());*/vararr=[];varst

7、artTime=+newDate();//+newDate()相当于newDate().valueOf(),返回当前吋间的毫秒数//push性能测试for(vari=;i<;i++){arr・push(i);}varendTime二+newDate();console.log(,z调用push方法往数组中添加个元索耗时z,+(cndTimc-startTimc)+z,毫秒〃);startTime=+newDate();arr=[];//unshift性能测试for(vari=;i<;i++){arr.unshift(i);1jcndTimc=+ncvDate(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。