# DoubleWoodLin / priorityQueue

priorityQueue by JS

Geek Repo

Github PK Tool

# priorityQueue

priorityQueue by JS 用JS编写的优先级队列，支持自定义comparator

## API

### constructor([comparator: Function])

Arguments

• (optional) comparator (Function) - 自定义的比较函数。

const priorityQueue = new PriorityQueue()//相当于new PriorityQueue((a,b)=>a-b)

const customQueue = new PriorityQueue((a, b) => {
return b - a
})

### enqueue(element: any)

Arguments

• element (any) - 入队的元素

element可以是除了null和undefined的任意类型

// 可以是数字
priorityQueue.enqueue(2)

// 可以是字符串
priorityQueue.enqueue('let's go')

// 可以是任意类型（除了undefined和null)
priorityQueue.enqueue({ name: 'jarvey' })

### dequeue(): any

returns any: 队头元素

// priorityQueue: [12, 3, 5], comparator: default

const item1 = priorityQueue.dequeue() // 3
const item2 = priorityQueue.dequeue() // 5
const item3 = priorityQueue.dequeue() // 12

### peek(): any

returns any: 队头元素

// priorityQueue: [12, 3, 5], comparator: default

const item1 = priorityQueue.peek() // 3
const item2 = priorityQueue.peek() // 3
const item3 = priorityQueue.peek() // 3

### size(): Number

returns Number: 队列长度

priorityQueue.enqueue(1)
priorityQueue.enqueue(2)
priorityQueue.enqueue(3)

const size = priorityQueue.size() // 3

### isEmpty(): Boolean

returns Boolean: true 代表队列为空, false 代表非空。

const empty1 = priorityQueue.isEmpty() // true

priorityQueue.enqueue(1)
const empty2 = priorityQueue.isEmpty() // false

### toArray(): Array

returns Array: 数组

// priorityQueue: [12, 3, 5], comparator: default

const arr=priorityQueue.toArray() // [12,3,5]

### clear(): any

// priorityQueue: [12, 3, 5], comparator: default

priorityQueue.claer() // []