By
donglegend
更新日期:
队列(Queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
队列类
1 2 3
| function Queue(){ this.data = []; }
|
添加数据
数据添加到末尾
1 2 3
| enqueue: function(element) { this.data.push(element); }
|
删除数据
从头部删除
1 2 3
| dequeue: function() { this.data.shift(); }
|
获取数据
返回第一个
1 2 3
| front: function() { return this.data[0]; }
|
是否为空
1 2 3
| isEmpty: function (){ return this.data.length == 0; }
|
清空数据
1 2 3
| clear: function (){ this.data= []; }
|
数据长度
1 2 3
| size: function (){ return this.data.length; }
|
辅助函数,打印数据
1 2 3
| print: function (){ console.log(this.data.toString()); }
|
完整代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| function Queue() { this.data = []; }
Queue.prototype = { enqueue: function(element) { this.data.push(element); }, dequeue: function() { this.data.shift(); }, front: function() { return this.data[0]; }, isEmpty: function() { return this.data.length == 0; }, clear: function() { this.data = []; }, size: function() { return this.data.length; }, print: function() { console.log(this.data.toString()); } }
|
下面再扩充研究一下 优先队列