JS資料結構與演算法之優先順序佇列 基於陣列

2021-10-06 23:05:32 字數 1702 閱讀 3716

function

priorityqueue()

//優先順序佇列插入方法

priorityqueue.prototype.

enqueue

=(ele, priority)

=>if(

typeof

(priority)

!='number'

|| type ==

'float'

)':$,need an integer`)

console.

error

(`無效的優先順序 :

$-->

$,需要傳入整型數字`

)return

}var queueelement =

newqueueelement

(ele, priority)

//為空則直接插入if(

this

.isempty()

)else

}//迴圈後未找到已存在元素優先順序數字大於插入元素,表示插入元素優先順序數字最大,直接在末尾插入if(

!added)}}

//移除並返回佇列第乙個元素

priorityqueue.prototype.

dequeue=(

)=>

//返回佇列中第乙個元素,不做任何修改

priorityqueue.prototype.

front=(

)=>

//返回佇列最後乙個元素,不做任何修改

priorityqueue.prototype.

end=()

=>

//佇列是否為空

priorityqueue.prototype.

isempty=(

)=>

// 佇列包含的元素個數

priorityqueue.prototype.

size=(

)=>

// tostring

priorityqueue.prototype.

tostring=(

)=>

return resultstr

}}var pq =

newpriorityqueue()

pq.enqueue

('a'

,'10'

)pq.

enqueue

('b',5

)pq.

enqueue

('c'

,true

)pq.

enqueue

('d'

,2.2

)pq.

enqueue

('e',2

)console.

log(pq)

;console.

log(pq.

tostring()

);res:

無效的優先順序 :

10--

>string,需要傳入整型數字

無效的優先順序 :

true

-->boolean,需要傳入整型數字

無效的優先順序 :

2.2--

>float,需要傳入整型數字

priorityqueue

, queueelement ]}

e--2

, b--

5,

Java資料結構與演算法之優先順序佇列

同樣,直接上 package com.wayne.example.mypriorityqueue.priorityq 1,佇列特性 資料項按關鍵字的值有序,關鍵值最小的資料項總在隊頭。2,優先順序佇列通常是使用堆的資料結構來儲存。3,優先順序佇列的效率 a 插入操作需要o n 的時間 b 刪除操作需...

資料結構 優先順序佇列

設初始序列為 49,38,65,97,76 大根堆 父節點的值大於或等於子節點的值 令數值越大優先順序越高 此時堆頂的元素為所有元素的最大值 97 小根堆 父節點的值小於或等於子節點的值 令數值越小優先順序越高 此時堆頂的元素為所有元素的最小值 38 將佇列中的所有元素按從大到小的數值輸出 分析 因...

資料結構 優先順序佇列

優先佇列的底層實現 二叉堆實現優先順序佇列 練習優先順序佇列也屬於佇列,因此也提供以下介面 利用二叉堆作為優先佇列的底層實現 可以通過comparator或comparable去自定義優先順序高低 利用二叉堆實現優先順序佇列。二叉堆實現優先順序佇列 author yusael public clas...