trait
WorklistAlgorithm
extends
Object
Simple implementation of a worklist algorithm. A processing function is applied repeatedly to the first element in the worklist, as long as the stack is not empty.
The client class should mix-in this class and initialize the worklist
field and define the processElement
method. Then call the run
method
providing a function that initializes the worklist.
Constructors
Members
type
Elem
=
Remove and return the first element to be processed from the worklist.
Process the current element from the worklist.
def
run
(
initWorklist: =>
Unit
)
: Unit
Run the iterative algorithm until the worklist remains empty. The initializer is run once before the loop starts and should initialize the worklist.