// 测试 let q = newQueue() q.enqueue('a') q.enqueue('b') q.enqueue('c') console.log(q.toString()) // a b c q.dequeue() console.log(q.toString()) // b c console.log('front:', q.front()) // front: b console.log('back:', q.back()) // back: c
functioncreateQueueArr() { let queueArr = [] for (let i = 0; i < 10; i++) { queueArr[i] = newQueue() } return queueArr } /** * @description 对数组中的数值按照基数排序的方法分配到不同的桶子中 * @param {Array} nums 需要排序的数字组成的数组 * @param {Array} queueArr 10个队列,相当于10个桶子,分别代表基数0-9 * @param {Number} digit 需要按哪位进行排序,1是对位个位 10对应10位 */ functiondistribute(nums, queueArr, digit) { for (let i = 0; i < nums.length; i++) { if (digit == 1) { queueArr[nums[i] % 10].enqueue(nums[i]) } else { let tempNum = Math.floor(nums[i] / 10) queueArr[tempNum].enqueue(nums[i]) } } } /** * @description 对基数排序后数值从上到下进行收集 * @param {Array} queueArr 队列 */
functioncollect(queueArr) { let tempArr = [] for (let i = 0; i < queueArr.length; i++) { while (!queueArr[i].empty()) { tempArr.push(queueArr[i].dequeue()) } } return tempArr }