enqueue

数据结构-队列

风流意气都作罢 提交于 2019-11-28 05:03:54
1.实现队列(enqueue 入队, dequeue 出队, head 返回头, tail 返回尾 size, clear, isEmpty) class Queue { constructor() { this.items = [] } enQueue(data) { this.items.push(data) } deQueue() { let deItem = this.items.shift() return deItem } head() { return this.items[0] } tail() { return this.items[this.items.length - 1] } size() { return this.items.length } clear() { this.items = [] } isEmpty() { return this.items.length === 0 } } 2. 队列常见算法 (1).约瑟夫环 思路:每隔两个删一个,那就是个数%3余数为0的话出队列,否则出队然后入队,即对头变队尾,直到剩下最后一个 // 约瑟夫环 [100 个数每隔两个删一个, 删到末尾继续从头开始, 求最后一个被删除的数是多少?] function delRing (ringArrs) { let queue = new Queue()

js算法练习--队

泄露秘密 提交于 2019-11-26 12:07:49
//一般队列 class queue { constructor() { this.list = []; } //入队 EnQueue(item) { this.list.push(item); } //出队 Dequeue() { return this.list.shift(); } //第一个元素值 GetFront() { return this.list[0]; } //长度 GetSize() { return this.list.length; } //是否为空 GetIsEmpty() { return this.list.length == 0; } // 清空 Clear() { this.list = []; } //读取元素 Read() { console.log(this.list.toString()); } } let queueTest = new queue(); queueTest.GetIsEmpty();//true queueTest.EnQueue(1); queueTest.EnQueue(2); queueTest.EnQueue(3); queueTest.Read();//1,2,3 queueTest.Dequeue();//1 queueTest.Read();//2,3 //优先队列:1:老年人和孕妇(或 带小孩的妇女