Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
18
Task/Priority-queue/PicoLisp/priority-queue-1.l
Normal file
18
Task/Priority-queue/PicoLisp/priority-queue-1.l
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# Insert item into priority queue
|
||||
(de insertPQ (Queue Prio Item)
|
||||
(idx Queue (cons Prio Item) T) )
|
||||
|
||||
# Remove and return top item from priority queue
|
||||
(de removePQ (Queue)
|
||||
(cdar (idx Queue (peekPQ Queue) NIL)) )
|
||||
|
||||
# Find top element in priority queue
|
||||
(de peekPQ (Queue)
|
||||
(let V (val Queue)
|
||||
(while (cadr V)
|
||||
(setq V @) )
|
||||
(car V) ) )
|
||||
|
||||
# Merge second queue into first
|
||||
(de mergePQ (Queue1 Queue2)
|
||||
(balance Queue1 (sort (conc (idx Queue1) (idx Queue2)))) )
|
||||
Loading…
Add table
Add a link
Reference in a new issue