JavaScript 数据结构(2):队列 Queue

原创 2015年11月18日 17:45:25
/**
 * 队列(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());
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JavaScript数据结构(2):栈与队列

栈和队列是web开发中最常用的两种数据结构。绝大多数用户,甚至包括web开发人员,都不知道这个惊人的事实。如果你是一个程序员,那么请听我讲两个启发性的例子:使用堆栈来组织数据,来实现文本编辑器的“撤消...

javascript数据结构4-队列2-基数排序

第一次按个位上的数字进行排序,第二次按十位上的数字进行排序 排序:91, 46, 85, 15, 92, 35, 31, 22 经过基数排序第一次扫描之后,数字被分配到如下盒子中:Bin 0: B...

大话数据结构 code 第四章 05顺序队列_Queue

大话数据结构 第四章 05顺序队列_Queue

数据结构与程序设计c++-----栈(stack)与队列(queue)

栈和队列都是所有数据结构中最基础的结构

Java数据结构与算法之Queue队列

目录: 1.队列概述 2.队列分类 3.数组实现自定义队列 4.链表实现自定义队列 1.队列概述 队列是一种特殊的线性表,它可以通过数组与链表两种方式实现,它与单链表和数组的区别是它只能从队尾添加元...

java实现数据结构——栈Stack与队列Queue

栈(Stack)作为一个先进后出(FILO) 的线性结构,只支持在栈顶的插入和弹出。 队列(Queue)作为一个先进先出(FIFO) 的线性结构,支持在队首获取元素,在对尾插入元素。   栈的实...

POJ 2259 Team Queue 数据结构 队列

Team Queue Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3282   Accepted: 1188 ...

数据结构-队列(queue)

队列是一种数据结构.它有两个基本操作:在队列尾部加人一个元素,和从队列头部移除一个元素就是说,队列以一种先进先出的方式管理数据,如果你试图向一个 已经满了的阻塞队列中添加一个元素或者是从一个空的阻塞队...
  • sm629
  • sm629
  • 2014-09-11 13:31
  • 416

PHP实现队列(Queue)数据结构

队列(Queue),是一种特殊的先进先出线性表,其只能在前端进行删除操作(一般称为出队),在后端进行插入操作(一般称为入队)。进行删除操作的端称为队头,进行插入操作的端称为队尾。队列,是按照先进先出或...
  • zqtsx
  • zqtsx
  • 2013-06-27 16:18
  • 2854
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)