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
providing a function that initializes the worklist.