19 lines
647 B
R
19 lines
647 B
R
PriorityQueue <-
|
|
setRefClass("PriorityQueue",
|
|
fields = list(keys = "numeric", values = "list"),
|
|
methods = list(
|
|
insert = function(key,value) {
|
|
temp <- c(keys,key)
|
|
ord <- order(temp)
|
|
keys <<- temp[ord]
|
|
values <<- c(values,list(value))[ord]
|
|
},
|
|
pop = function() {
|
|
head <- values[[1]]
|
|
keys <<- keys[-1]
|
|
values <<- values[-1]
|
|
return(head)
|
|
},
|
|
empty = function() length(keys) == 0
|
|
))
|