tasks a-s

This commit is contained in:
Ingy döt Net 2013-04-10 23:57:08 -07:00
parent 47bf37c096
commit b83f433714
12433 changed files with 156208 additions and 123 deletions

View file

@ -0,0 +1,27 @@
PriorityQueue <- function() {
keys <<- values <<- NULL
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]]
values <<- values[-1]
keys <<- keys[-1]
return(head)
}
empty <- function() length(keys) == 0
list(insert = insert, pop = pop, empty = empty)
}
pq <- PriorityQueue()
pq$insert(3, "Clear drains")
pq$insert(4, "Feed cat")
pq$insert(5, "Make tea")
pq$insert(1, "Solve RC tasks")
pq$insert(2, "Tax return")
while(!pq$empty()) {
print(pq$pop())
}

View file

@ -0,0 +1,5 @@
[1] "Solve RC tasks"
[1] "Tax return"
[1] "Clear drains"
[1] "Feed cat"
[1] "Make tea"

View file

@ -0,0 +1,18 @@
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
))

View file

@ -0,0 +1 @@
pq <- PriorityQueue$new()