Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
45
Task/Priority-queue/Arturo/priority-queue.arturo
Normal file
45
Task/Priority-queue/Arturo/priority-queue.arturo
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
define :item [priority, value][
|
||||
print: [
|
||||
~"(|this\priority|, |this\value|)"
|
||||
]
|
||||
]
|
||||
define :queue [items][
|
||||
init: [
|
||||
this\items: arrange this\items 'it -> it\priority
|
||||
]
|
||||
]
|
||||
|
||||
empty?: function [this :queue][
|
||||
zero? this\items
|
||||
]
|
||||
|
||||
push: function [this :queue, item][
|
||||
this\items: this\items ++ item
|
||||
this\items: arrange this\items 'it -> it\priority
|
||||
]
|
||||
|
||||
pop: function [this :queue][
|
||||
ensure -> not? empty? this
|
||||
|
||||
result: this\items\0
|
||||
this\items: remove.index this\items 0
|
||||
return result
|
||||
]
|
||||
|
||||
Q: to :queue @[to [:item] [
|
||||
[3 "Clear drains"]
|
||||
[4 "Feed cat"]
|
||||
[5 "Make tea"]
|
||||
[1 "Solve RC tasks"]
|
||||
]]
|
||||
|
||||
push Q to :item [2 "Tax return"]
|
||||
|
||||
print ["queue is empty?" empty? Q]
|
||||
print ""
|
||||
|
||||
while [not? empty? Q]->
|
||||
print ["task:" pop Q]
|
||||
|
||||
print ""
|
||||
print ["queue is empty?" empty? Q]
|
||||
Loading…
Add table
Add a link
Reference in a new issue