Another update from ingydotnet^djgoku
This commit is contained in:
parent
91df62d461
commit
948b86eafa
7604 changed files with 108452 additions and 22726 deletions
42
Task/Priority-queue/REXX/priority-queue-2.rexx
Normal file
42
Task/Priority-queue/REXX/priority-queue-2.rexx
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
/*REXX pgm implements a priority queue; with insert/show/delete top task*/
|
||||
n=0
|
||||
task.=0 /* for the sake of task.0done.* */
|
||||
say '------ inserting tasks.'; call ins_task 3 'Clear drains'
|
||||
call ins_task 4 'Feed cat'
|
||||
call ins_task 5 'Make tea'
|
||||
call ins_task 1 'Solve RC tasks'
|
||||
call ins_task 2 'Tax return'
|
||||
call ins_task 6 'Relax'
|
||||
call ins_task 6 'Enjoy'
|
||||
say '------ Showing tasks.'; call show_tasks
|
||||
say '------ Show and delete top task.'
|
||||
todo=n /* tasks to be done */
|
||||
do While todo>0
|
||||
Say top()
|
||||
End
|
||||
exit
|
||||
|
||||
ins_task: procedure expose n task.
|
||||
n=n+1
|
||||
Parse Arg task.0pri.n task.0txt.n
|
||||
Return
|
||||
|
||||
show_tasks: procedure expose task. n
|
||||
do i=1 To n
|
||||
Say task.0pri.i task.0txt.i
|
||||
End
|
||||
Return
|
||||
|
||||
top: procedure expose n task. todo /* get top task and mark it 'done' */
|
||||
high=0
|
||||
Do i=1 To n
|
||||
If task.0pri.i>high &,
|
||||
task.0done.i=0 Then Do
|
||||
j=i
|
||||
high=task.0pri.i
|
||||
End
|
||||
End
|
||||
res=task.0pri.j task.0txt.j
|
||||
task.0done.j=1
|
||||
todo=todo-1
|
||||
return res
|
||||
Loading…
Add table
Add a link
Reference in a new issue