创建一个自己的类来表示一个队列
function Queue() { //这里写属性和方法 }
首先需要一个用于存储队列中元素的数据结构,可以用数组
let items = []
接下来声明一些队列可用的方法
- enqueue(element(s)): 向队列尾部添加一个(或多个)新的项
- dequeue(): 移除队列的第一(即排在队列最前面的)项,并返回被移除的元素
- front(): 返回队列中第一个元素——最先被添加,也将是最先被移除的元素,队列不做任何变动
- isEmpty(): 如果队列中不包含任何元素,返回
true
,否则返回false
- size(): 返回队列包含的元素个数,与数组的length属性类似
function Queue() { let items = [] this.enqueue = function(element) { items.push(element) } this.dequeue = function() { return items.shift() } this.front = function() { return items[0] } this.isEmpty = function() { return items.length == 0 } this.size = function() { return items.length } this.print = function() { console.log(items.toString()) } } let queue = new Queue() console.log(queue.isEmpty()) queue.enqueue("liu") queue.enqueue("ke") queue.enqueue('yan') queue.print() console.log(queue.size()) console.log(queue.isEmpty()) queue.dequeue() queue.dequeue() queue.print()
ES6语法封装一个queue类
let Queue = (function() { const items = new WeakMap() class Queue { constructor() { items.set(this, []) } enqueue(element) { let q = items.get(this) q.push(element) } dequeue() { let q = items.get(this) let r = q.shift() return r } front() { return items[0] } isEmpty() { return items.length == 0 } size() { return items.length } print() { console.log(items.toString()) } } return Queue })()
来源:https://www.cnblogs.com/nayek/p/12013531.html