栈,队列 in JavaScript


// 在JavaScript里面,已经拥有push ,pop,shift,unshift的功能,虽然栈和队列不难,然而,直接用太过简单。
复制代码
 1 // 队列
 2 function Queue() {
 3     var arr = [];
 4     var size = 0;
 5 
 6     var push = function(num) {
 7         arr[size] = num;
 8         size++;
 9     };
10     var shift = function() {
11         var ret = arr[0];
12         for (var i = size-1;i>0;i--){
13             arr[i-1] = arr[i];
14         }
15         size--;
16         arr.length = size; // arr[size] = null;
17         return ret;
18     };
19     var peek = function() {
20         return arr[size-1];
21     };
22 
23     var isEmpty = function() {
24         if(size === 0) {
25             return true;
26         }
27             return false;
28     };
29 
30     return {
31         shift: shift,
32         push: push,
33         peek: peek,
34         isEmpty: isEmpty
35     };
36 };
37 var qu = new Queue();
复制代码

 

复制代码
 1 //
 2 function Stock(num) {
 3     var arr = [];
 4     var size = 0;
 5 
 6     this.push = function(num) {
 7         arr[size] = num;
 8         size++;
 9     }
10     this.pop = function() {
11         var ret = arr[--size];
12         arr[size] = null;
13         return ret;
14     }
15     this.peek = function() {
16         return arr[size-1];
17     };
18 
19     this.isEmpty = function() {
20         if(size === 0) {
21             return true;
22         }
23             return false;
24     };
25     this.getSize = function() {
26         return size;
27     }
28 };
29 var st = new Stock();
复制代码

 

posted @   Esther_Cheung  阅读(183)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示