数据结构队列
发布于: 2021 年 03 月 24 日
队列是一种特殊的线性表,遵循 FILFO(先进先出)的原则,队列在尾部添加元素,在顶部移除元素。最新添加的元素必须在队列末尾
队列特点
先进先出
在顶部删除
在尾部添加
队列通常有以下方法
enqueue():向尾部添加一个或者多个元素
dequeue():移除队列第一个元素并返回移除元素
front():返回队列第一个元素,就是最先添加的那个元素
isEmpty:判断是否为空队列
size():返回队列元素个数
创建队列
const Queue = function () { const item = [] class Queues { // 添加元素 在末尾添加 enqueue(value) { item.push(value) } //删除元素 在头部删除 pop(value) { return item.shift(value) } // 返回栈顶元素 front() { return item[0] } // 判断是否为空栈 isEmpty() { return item.length === 0 ? true : false } //清除站内所有元素(clear) clear() { item = [] } // 返回栈内元素个数(size) size() { return item.length } // 打印数组元素 print() { console.log(item.toString()) } } return Queues}()const queue = new Queue()复制代码
优先队列
// 优先队列const priorityQueue = function () { const item = [] class Queue2 { // 添加元素 根据优先级 决定添加位置 数字越大 优先级越小 enqueue(value, priority) { let obj = { value, priority } if (item.length !== 0) { let control = false for (let i = 0; i < item.length; i++) { if (obj.priority < item[i].priority) { item.splice(i, 0, obj) control = true break } } control ? null : item.push(obj) } else { item.push(obj) } } //删除元素 在头部删除 pop(value) { return item.shift(value) } // 返回栈顶元素 front() { return item[0] } // 判断是否为空栈 isEmpty() { return item.length === 0 ? true : false } //清除站内所有元素(clear) clear() { item = [] } // 返回栈内元素个数(size) size() { return item.length } // 打印数组元素 print() { console.log(item) } } return Queue2}()const priority = new priorityQueue()复制代码
划线
评论
复制
发布于: 2021 年 03 月 24 日阅读数: 8
我是程序员小贱
关注
公众号【我是程序员小贱】干货分享 2019.10.15 加入
计算机小硕,热爱分享











评论