tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
27
Task/Priority-queue/R/priority-queue-1.r
Normal file
27
Task/Priority-queue/R/priority-queue-1.r
Normal 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())
|
||||
}
|
||||
5
Task/Priority-queue/R/priority-queue-2.r
Normal file
5
Task/Priority-queue/R/priority-queue-2.r
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
[1] "Solve RC tasks"
|
||||
[1] "Tax return"
|
||||
[1] "Clear drains"
|
||||
[1] "Feed cat"
|
||||
[1] "Make tea"
|
||||
18
Task/Priority-queue/R/priority-queue-3.r
Normal file
18
Task/Priority-queue/R/priority-queue-3.r
Normal 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
|
||||
))
|
||||
1
Task/Priority-queue/R/priority-queue-4.r
Normal file
1
Task/Priority-queue/R/priority-queue-4.r
Normal file
|
|
@ -0,0 +1 @@
|
|||
pq <- PriorityQueue$new()
|
||||
Loading…
Add table
Add a link
Reference in a new issue