18 lines
753 B
R
18 lines
753 B
R
PriorityQueue <-
|
|
setRefClass("PriorityQueue",
|
|
fields = list(keys = "numeric", values = "list"),
|
|
methods = list(
|
|
insert = function(key,value) {
|
|
insert.order <- findInterval(key, keys)
|
|
keys <<- append(keys, key, insert.order)
|
|
values <<- append(values, value, insert.order)
|
|
},
|
|
pop = function() {
|
|
head <- list(key=keys[1],value=values[[1]])
|
|
keys <<- keys[-1]
|
|
values <<- values[-1]
|
|
return(head)
|
|
},
|
|
empty = function() length(keys) == 0
|
|
))
|