JavaScript 数据结构(2):队列 Queue
2015-11-18 17:45
579 查看
/** * 队列(Queue) * 先进先出 */ // Array 实现 /*function Queue () { var arr = []; return { insert: function(item){ // 入列 arr.push(item); }, remove: function(){ // 出列 return arr.shift(); }, peek: function(){ // 查看队头元素 return arr[0]; }, isEmpty: function(){ // 队列是否为空 return arr.length === 0; }, size: function(){ // 队列中元素数目 return arr.length; } }; }*/ // Object 实现 function Queue () { var queue = {}, front = 0, end = -1, size = 0; return { insert: function(item){ // 入列 queue[++end] = item; size++; }, remove: function(){ // 出列 if(size == 0){ return undefined; }else{ var frontItem = queue[front++]; size--; return frontItem; } }, peek: function(){ // 查看队头元素 return queue[front]; }, isEmpty: function(){ // 队列是否为空 return size === 0; }, size: function(){ // 队列中元素数目 return size; } }; } // test var queue = new Queue(); console.log('Is empty? ' + queue.isEmpty()); console.log('size: ' + queue.size()); queue.insert(1); queue.insert(2); console.log('size: ' + queue.size()); console.log('peek: ' + queue.peek()); console.log('remove: ' + queue.remove()); console.log('peek: ' + queue.peek()); console.log('Is empty? ' + queue.isEmpty()); console.log('size: ' + queue.size());
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享
- 如何创建对象以及jQuery中创建对象的方式
- IE8开发人员工具教程(二)
- 在flex中执行一个javascript方法的简单方式