RosettaCodeData/Task/Priority-queue/EchoLisp/priority-queue.l

19 lines
623 B
Common Lisp

(lib 'tree)
(define tasks (make-bin-tree 3 "Clear drains"))
(bin-tree-insert tasks 2 "Tax return")
(bin-tree-insert tasks 5 "Make tea")
(bin-tree-insert tasks 1 "Solve RC tasks")
(bin-tree-insert tasks 4 "Feed 🐡")
(bin-tree-pop-first tasks) (1 . "Solve RC tasks")
(bin-tree-pop-first tasks) (2 . "Tax return")
(bin-tree-pop-first tasks) (3 . "Clear drains")
(bin-tree-pop-first tasks) (4 . "Feed 🐡")
(bin-tree-pop-first tasks) (5 . "Make tea")
(bin-tree-pop-first tasks) null
;; similarly
(bin-tree-pop-last tasks) (5 . "Make tea")
(bin-tree-pop-last tasks) (4 . "Feed 🐡")
; etc.